我编写套接字客户端 - 服务器连接。服务器侦听客户端名称,如果不可用,则服务器关闭连接。正确的名字都是有效的。 客户端:
clientSocket = new Socket("192.168.1.102", 15780);
outToServer = new DataOutputStream(clientSocket.getOutputStream());
sendRequest(uName);
currentInt = 0;
updateUI();
然后我检查一下,是否可以打开连接。
private void updateUI()
{
if(currentInt <= 100)
{
if(clientSocket.isConnected())
{
outServ.setText("Complete!");
Intent i = new Intent(this, RoomClass.class);
startActivity(i);
mRedrawHandler.removeMessages(0);
}
}else{
currentInt++;
mRedrawHandler.sleep(50);
}
}
它始终是连接的!但服务器端关闭的cliet端口。我听说因此无法检查连接是否关闭。如何制作?
答案 0 :(得分:2)
仅当服务器正常关闭(调用.close()方法)时,Socket.isConnected()才会返回'false'。 如果您无法控制服务器套接字,则使用PrintWrite.checkError()
请参阅此帖子以获取示例:https://stackoverflow.com/a/8268497/1012381