客户端:
打开套接字:
Socket socket = new Socket(host,port);
写数据:
socket.getOutputStream().write("str");
socket.getOutputStream().flush();
阅读数据:
response = socket.getInputStream().read();
关闭连接和套接字:
socket.shutdownInput();
socket.shutdownOutput();
socket.close();
服务器
Socket clientSocket = serverSocket.accept();
message = clientSocket.getInputStream().read();
clientSocket.getOutputStream().write("str2");
clientSocket.isConnected()返回true,服务器未看到客户端已断开连接。如何检测客户端是否已断开连接?
我试着用这个:
try {
while (true) {
message = clientSocket.getInputStream().read();
clientSocket.getOutputStream().write("str2");
}
} catch (IOException e) {
clientSocket.close();
}
但它不起作用。
答案 0 :(得分:0)
一种常见的方法是客户端向服务器发送“QUIT”消息。然后服务器将关闭它的套接字。
另一种方法是在服务器套接字上执行I / O并捕获客户端消失时将获得的异常。
后一种方法有几个缺点: