用java读取套接字数据

时间:2015-05-14 12:36:09

标签: java javascript sockets

我正在使用websocket发送数据,这是代码(javascript)

  socket= new WebSocket('ws://localhost:10302/socket');
                      socket.onopen= function() {
                          socket.send('delete structure'+c);
                      }

在服务器端我正在使用java,这是代码

try {
        standardiste = new ServerSocket(10302);
        while(true) {
            System.out.println("listening data from socket");
            socket = standardiste.accept();
            try {

                BufferedReader  entree = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                while(entree!=null)
                {

                System.out.println(entree.readLine());
                }
            }
            catch(IOException exc) {
            }
            socket.close();
        }
    }

我想阅读发送的数据?

1 个答案:

答案 0 :(得分:0)

您需要的是

String line;
while((line = entree.readLine()) != null){
    System.out.println(line);
}

你所尝试的是将BufferedReader绑定到Socket中,但从未从中读取任何内容。这就是BufferedReader.readLine()方法的用武之地,它从缓冲区读取一行(直到它到达终点字符)。

通过将当前行与null(readLine() != null)进行比较,您将继续阅读,直到它停止接收传输结束。

修改

我担心WebSocket协议与Java Socket协议不同,因此它只接收标头,但不识别正在发送的任何实际数据,这很简单,因为协议不匹配。尝试使用Java WebSocket类。这是一个很好的教程。