1:socket关闭的问题
try
{
client.close();
}catch(IOException e)
{
e.printStackTrace();
}
System.out.println(client.isConnected());//client是一个socket
输出的时候显示true
表示还在连接换成System.out.println(client.isClosed());
显示false
表示client没有被关闭
?????????????????????????????????????????
2:使用如下代码实现断开重连服务器
while(nowClient.getMySocket().isClosed())
{
System.out.println("Thread is dead!");
try {
nowClient = new Client();
getMsgThread = new Thread(new ServerMsgCollectThread(nowClient.getMySocket()));
sendMsgThread = new Thread(new ClientMsgSendThread(nowClient.getMySocket()));
getMsgThread.start();
sendMsgThread.start();
} catch (Exception e) {
System.out.println("输入的IP地址错误");
}无效
nowClient.getMySocket().isClosed()可能是由于第一个问题socket被关闭后isClosed还显示false的原因
try
{
client.close();
}catch(IOException e)
{
e.printStackTrace();
}
System.out.println(client.isConnected());//client是一个socket
输出的时候显示true
表示还在连接换成System.out.println(client.isClosed());
显示false
表示client没有被关闭
?????????????????????????????????????????
2:使用如下代码实现断开重连服务器
while(nowClient.getMySocket().isClosed())
{
System.out.println("Thread is dead!");
try {
nowClient = new Client();
getMsgThread = new Thread(new ServerMsgCollectThread(nowClient.getMySocket()));
sendMsgThread = new Thread(new ClientMsgSendThread(nowClient.getMySocket()));
getMsgThread.start();
sendMsgThread.start();
} catch (Exception e) {
System.out.println("输入的IP地址错误");
}无效
nowClient.getMySocket().isClosed()可能是由于第一个问题socket被关闭后isClosed还显示false的原因
sendMsgThread = new Thread(new ClientMsgSendThread(nowClient.getMySocket()));
调用client.close();后,socket的isClosed属性确实是true重连问题调用判断socket是否为null来执行操作,在main线程里执行,