以下是我的客户端代码,它从服务器检索文本并打印.
Socket socket = new Socket(ip, port);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
String string = "Hello!\n";
byte buffer[] = string.getBytes();
out.write(buffer);
while ((character = in.read()) != -1){
System.out.print((char) character);
}
Run Code Online (Sandbox Code Playgroud)
我从服务器获取正确的值,但它一次又一次地发生,我怎样才能找到发送值的长度.
-1表示流的结束,并在连接关闭时接收.如果你想保持连接打开并发送多条消息,你需要某种协议(类似于两端之间的协议)来告诉消息的结束位置.有很多方法可以做到这一点,但在你的例子中,你正在写一个行终止符(\n)到消息的末尾,所以你可以在另一端检查它.另一种方法是在实际消息内容之前写入要发送的字节数.
| 归档时间: |
|
| 查看次数: |
1678 次 |
| 最近记录: |