我知道如何为java客户机编写java服务器代码,但我是从js编码开始的,我完全不了解它的套接字工作方式。我正在尝试使用java中的普通tcp服务器,但我只是从js接收到部分messeage头,而不是消息。我的代码可能是错的,所以如果有人给我发一个带有java服务器和一些ramdom字符串事务的js客户机示例,我会很高兴的 var socket = new WebSocket("ws://localhost:8080"); socket.send("hola");
```
public static void main(String [] args){
try {
ServerSocket serverSocket= new ServerSocket(8080);
ClientHandler clientHandler;
while (true){
Socket socket= serverSocket.accept();
clientHandler= new ClientHandler(socket);
clientHandler.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static class ClientHandler extends Thread{
Socket socket; InputStream in; OutputStream out; BufferedInputStream bufferedInputStream;
public ClientHandler(Socket socket){
try {
this.socket= socket;
in= socket.getInputStream();
out= socket.getOutputStream();
bufferedInputStream= new BufferedInputStream(in);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run(){
System.out.println(socket.getInetAddress()+"Connected successfully");
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(bufferedReader.readLine());
System.out.println(stringBuilder.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}```
1条答案
按热度按时间bpzcxfmw1#
代码中有很多问题。不管怎样,您当前的问题是服务器实现了一个tcp服务器,但是客户端使用的是一个websocket,它是tcp之上的一个协议,所以您也必须处理该协议。您必须自己实现httpwebsocket协议,或者使用netty或其他libs来实现它。