Java Socket: 服务器重启,客户端自动重连
Java Socket编程:自己写了一个简单的Java Socket Server/Client应用。调试代码的时候,发现只要重启Server,客户端抛出异常,进程断开。
解决办法:在客户端另外启动一个进程,调用sendUrgentData(0xFF)方法监听是否与服务器端连接成功。
原来的代码:
public void run() {
String message = "";
DataInputStream dis = client.getDis();
try {
while(true) {
String date = new SimpleDateFormat().format(new Date());
message = dis.readUTF();
............
服务器端异常断开, message = dis.readUTF() 会抛出异常信息:java.net.SocketException: Connection reset
Client继承Thread类。
代码如下:
public class TestClient2 extends Thread{
................
public void run() {
while(true)
{
if(socket == null) {
this.connect();
this.createThread();
}
boolean connectStatus = true;
while(connectStatus) {
try {
socket.sendUrgentData(0xFF);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
socket = null;
connectStatus = false;
}
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
上一篇: UP主恶搞《你钉起来真好听》 钉钉回应:* 已经会唱了
下一篇: 房事未完