如何从jswebsocket向java服务器发送和接收消息?

ipakzgxi  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(329)

我知道如何为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();
        }

    }
}

}```

bpzcxfmw

bpzcxfmw1#

代码中有很多问题。不管怎样,您当前的问题是服务器实现了一个tcp服务器,但是客户端使用的是一个websocket,它是tcp之上的一个协议,所以您也必须处理该协议。您必须自己实现httpwebsocket协议,或者使用netty或其他libs来实现它。

相关问题