在我开始这个问题之前,我想说我是WebSockets的新手。
我必须创建一个客户端,它与服务器联系,并检索服务器发送的数据。(有用户名和密码)。
我试过使用这个:http://www.eclipse.org/jetty/documentation/current/jetty-websocket-client-api.html
没有成功(我不确定我应该使用哪个websocket jar,所以我刚刚导入了jetty-all jar文件)。我的程序实际上与我提供的教程完全相同,但是一旦我运行它。它到处都是错误(这些错误与导入的jar文件有关)。
现在我已经转向Java EE WebSocket教程:http://docs.oracle.com/javaee/7/tutorial/doc/websocket.htm
我怎么也理解不了。
我不是要完整的代码,也许是关于如何用Java EE解决这个问题的指南。我正在努力寻找纯粹基于Java的客户端的在线资源。
如果您有时间(一个小时)进一步研究该技术,这里有一个很好的Java套接字教程:http://docs.oracle.com/javase/tutorial/networking/sockets/
下面是一些服务器端套接字的基本示例代码:private final static int PORT_NUMBER = 3333;
try (
//ServerSocket listening to port 3333
ServerSocket serverSocket =
new ServerSocket(PORT_NUMBER);
//ServerSocket.accept(); blocks program execution until a client socket connects,
//put it in a loop to listen for continuous connections
Socket clientSocket = serverSocket.accept();
PrintWriter out =
new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
) {
//Read data from streams
String inputLine;
while ((inputLine = in.readLine()) != null) {
out.println(inputLine);
}
} catch (IOException e) {
System.out.println("Exception caught when trying to listen on port "
+ portNumber + " or listening for a connection");
System.out.println(e.getMessage());
}
在客户端你使用Socket连接到你的ServerSocket:
Socket echoSocket = new Socket(hostName, portNumber);
例如,"hostname"可以是"localhost",而"portnumber"在上面的示例中将是"3333"。主机名是您要连接的IP。
代码示例来自Oracle.com,在我链接的教程中