`

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();
    }
   }
   
  }

}

分享到:
评论

相关推荐

    Socket服务器端断开后重新打开,客户端将自动完成链接

    Socket通信技术。利用到了Thread技术,完成了,服务器开启,一直监听客户端功能,两点是,当服务器端断开后重新打开后,客户端能自动链接到服务器端,由于网络原因最多延迟2分钟

    JAVA socket收发数据,并支持断网自动连接

    实现socket客户端收发数据,并支持客户端断网或服务器重启后重连

    socket数据传输(自动任务检测服务端状态)

    socket协议数据传输,客户端发起请求每个五秒检测服务端是否在线。同时客户端读、写线程接收...如果对方服务器挂掉,客户端数据收取超时会自动断开连接,当服务端重新上线,客户端会重启连接,继续发送请求,接收数据;

    JAVA多服务器通讯框架-聊天功能演示程序 V0.1 alpha

    JAVA多服务器通讯框架是基于NIO开发的Socket通讯框架,实现了客户端和服务器,服务器与服务器之间的通讯功能,适合应用于大型聊天服务器,大型游戏服务器。 本演示程序实现了一个基本的命令行聊天功能,以演示...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    基于JAVA CS远程监控系统软件的实现(源代码+WORD论文文档论文).zip

    1.实现主控端(服务器)与被监控端(客户端)之间的通讯。 ——用Java Socket来实现。 2.用Java采集事件,封装成消息,用于发送。 ——在主控端机器上采集事件(一般只不过是键盘和鼠标的事件),然后封装成消息类...

    AnyFo - EricSofa:专门用于C/S结构的网络服务器中间件

    让开发人员在不用重启EricSofa的情况下,在自己的开发工具中编写代码,并实时而快速的将代码编译 后的文件自动的部署到EricSofa中,而开发工具完全不需要安装任何插件,从而再一次的简化了服务器的开发过程,又一次...

    C 网络服务开发套件0.5.0

    集成的C 通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C 的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; b. 通讯 基于XML文本通信协议,客户端可以方便...

    java查看sun包源码-LogWeb:高性能在线记录日志系统(支持集群管理)

    java查看sun包源码 LogWeb 高性能在线记录日志系统(支持集群...等关系性数据库正常后,重启本服务即可自动恢复日志数据并写入到数据库中。 是否启用可以配置sys.config.xml中设置,开启后安全性提高,但性能所有下降。

    C 网络服务开发套件

    集成的C 通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C 的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; b. 通讯 基于XML文本通信协议,客户端可以方便...

    C++网络开发框架0.5.7

    集成的C++通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C++的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; b. 通讯 基于XML文本通信协议,客户端可以方便...

    C++网络服务开发套件0.5.5

    系统 集成的C++通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C++的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; <br>b. 通讯 基于XML文本...

    C++网络服务开发套件0.5.6

    系统 集成的C++通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C++的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; <br>b. 通讯 基于XML文本通信...

    C++网络服务开发套件0.5.3

    系统 集成的C++通用通讯平台, 类似于JAVA的WEB 服务器(如TOMCAT、JBOSS等); 统一管理C++的SOCKET通讯、线程沲管理、调用管理等; 可以注册为NT服务, 具实时监控重启功能; <br>b. 通讯 基于XML文本...

    飞鸽传书(IPMessenger) 源码

    不需要服务器支持, 支持文件/文件夹的传送 (2.00版以上),通讯数据采用 RSA/Blofish 加密 (2.00版以上),十分小巧,简单易用,而且你可以完全免费使用它。目前已有的版本包括: Win32, Win16, MacOS, MacOSX, X11, ...

    桌面小助手

    支持2.0以及2.34版本 <br>------------------------------------------------------------------------------------------------- <br>v2.3.215.2008 <br>+加入点对点通讯功能(分别为服务器端和客户端,目前...

    易语言程序免安装版下载

    互联网支持库中的“置代理服务器”命令增加了参数,用于支持代理服务器用户认证。 5. 修改控制台操作支持库中“控制台对象.取显示区大小”的参数名称及其说明。 6. 修改外部数据库在4.12版中导致的不兼容问题,并...

Global site tag (gtag.js) - Google Analytics