我正在使用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();
}
}
我想阅读发送的数据?
答案 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类。这是一个很好的教程。