三行代码  ›  专栏  ›  技术社区  ›  user7289922

使用Java InputStreamReader读取从JavaScript WebSocket接收的字符串

  •  0
  • user7289922  · 技术社区  · 1 月前

    我有以下JavaScript代码:

    const socket = new WebSocket("wss://localhost:7999"); // start
    
    socket.addEventListener("open", (event) => {
        socket.send("Hello!");
    });
    
    socket.addEventListener("message", (event) => {
        console.log("Received message.");
    });
    

    下面是Java代码:

    import java.io.*;
    import java.net.*;
    
    class Server {
        public static void main(String[] args) throws Exception {
            ServerSocket s = new ServerSocket(7999);
            Socket client = s.accept();
    
            System.out.println("I am in!");
            InputStream inputStream = client.getInputStream();
    
            InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8");
            BufferedReader in = new BufferedReader(reader);
            String readLine;
    
            while ((readLine = in.readLine()) != null) {
                System.out.println(readLine);
            }
        }
    }
    

    I am in!
    ���
    �.isֿ���pO?��-4/P�P����- ���Q�`�:���x���wG�Z��x��v�##�6���,�+̩�0�/̨�$�#�
    �   �(�'����=<5/�
    }�� localhost�
    
    ��http/1.1
    3+)�� �-l-h������ۥ n�}�>�zUZ�Ğ�-+
    

    我的目标是读取值 Hello socket.send . 有人知道如何解决这个问题吗?

    1 回复  |  直到 1 月前
        1
  •  1
  •   Mirek Pluta    1 月前

    ServerSocket 是处理TCP连接的非常低级的构造。 除非您计划实现整个功能,否则我建议您不要使用raw

    我可以向您指出以下几个选项:

    • 垂直x