`

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服务器端在断开后重新打开时,客户端的自动重连机制主要依赖于心跳检测、异常处理、重试策略和超时设定。通过这些技术手段,可以确保在网络不稳定或服务器短暂离线的情况下,客户端仍能恢复与服务器...

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

    本话题主要关注如何使用Java Socket实现数据的收发,并在客户端断网或者服务器重启后实现自动重连功能。 1. **Java Socket基础** - **Socket类**:在Java中,`java.net.Socket`类代表一个TCP连接,它封装了输入/...

    java 客户端自动更新

    下面将详细讲解如何使用Java实现客户端自动更新,并结合socket通信进行实现。 1. **自动更新流程** - **检测更新**:客户端启动时或者在特定时间点检查服务器上是否存在新版本。 - **版本比较**:通过对比本地...

    IM聊服务器+客户端java源码

    - **消息持久化**:为了保证消息不丢失,服务器端可能需要对消息进行持久化存储,即使在服务器重启后也能恢复。 5. **学习资源**: - **Java网络编程**:深入理解《Java网络编程》第四版等书籍,了解网络通信的...

    java实现远程桌面程序socket版

    所以容量很小,服务端主窗口为表格,可以打开预览窗口(屏幕墙),预览在线客户端画面,可以控制在线的电脑,另外包含功能:开机(客户端处理关机状态且打开远程唤醒的前提下可有用),关机,重启。查看效果图:...

    socket服务器 eclipse tomcat

    本篇文章将深入讲解如何使用Eclipse创建一个基于Java的Socket服务器,并将其部署到Tomcat服务器上,以便于新手理解。 首先,让我们了解Socket服务器的基本概念。Socket是网络编程中的一个接口,它提供了进程间通信...

    socket重连解决

    在实际应用中,由于各种原因(如网络中断、服务器重启、超时等),Socket连接可能会断开,这时就需要进行重连处理以确保服务的稳定性和可靠性。本文将详细探讨Socket重连的原理、方法以及实现策略。 一、Socket连接...

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

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

    一个我自己学习Erlang的聊天室服务器及客户端代码

    在聊天室服务器中,如果某个进程因为错误崩溃,Erlang的错误处理机制可以自动重启该进程,保证服务的连续性。 4. 消息传递:Erlang进程间通过消息传递进行通信,这在聊天室服务器中尤为关键。服务器进程会监听来自...

    socket 多线程通信demo,长连接,自动检测,可自动关闭

    在长连接中,如果没有数据交换,连接可能会因为各种原因(如网络故障或服务器重启)而中断。心跳包定期发送,如果在一定时间内没有收到回应,那么可以认为连接已断开,系统会自动关闭这个连接。 5. **对象传输**:...

    blocking-tcp-connection:阻止Java客户端服务器TCP通信

    当需要阻止Java客户端与服务器之间的TCP通信时,通常是为了进行测试、故障排查或者实现特定的安全策略。下面我们将详细探讨如何在Java中实现这一目标。 首先,我们要理解TCP连接的生命周期。TCP连接建立始于三次...

    socketdemo

    在Socket_demo压缩包中,可能包含服务器端(Server)和客户端(Client)的Java源代码文件,以及相关的配置文件。通过对这些文件的分析和学习,你可以深入理解Socket通信的工作原理以及如何在实际项目中应用。

    Socket-master.rar

    总的来说,"Socket-master.rar"提供的内容可能涵盖了Socket编程的核心概念,特别是客户端和服务端如何通过Socket实现可靠的长连接,以及如何处理连接中断后的重连策略。对于想要深入理解和实践网络编程的开发者来说...

    java 图形自动更新程序

    在这个上下文中,服务器端的Socket监听客户端的连接请求,当客户端(图形自动更新程序)发送请求时,服务器会返回最新的更新包信息。Socket连接确保了数据的安全传输,并且可以通过控制台或Swing界面提供实时反馈,...

    java远程桌面控制系统

    Socket通信涉及到服务器端(ServerSocket)和客户端(Socket)的概念。服务器端会监听特定的端口号,等待客户端的连接请求。一旦接收到请求,就会创建一个Socket实例,与客户端建立连接。客户端则通过创建Socket对象...

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

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

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

    Java CS远程监控系统是一种客户端-服务器(Client-Server)架构的软件应用,它允许用户通过客户端应用程序远程监控和管理服务器端的各种资源。本项目提供的压缩包包含了一个完整的基于Java实现的远程监控系统的源...

    小小聊天程序代码——首次运行客户端可以向服务端发信息,不知道为什么之后相互就不能发信息了

    例如,网络中断、服务器重启等情况可能导致IOException,如果不妥善处理,程序可能无法恢复。 4. **读写操作不当**:在Java中,使用`BufferedReader`和`PrintWriter`进行网络通信时,可能需要确保每次读写操作都...

    QuickServer开发指南

    QuickServer 是一个免费的开源 Java 库,用于快速创建健壮的多线程、多客户端 TCP 服务器应用程序。使用 QuickServer,用户可以只集中处理应用程序的逻辑/协议,从而方便的建立功能强大的服务器应用。该程序由 ...

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

    Java CS远程监控系统是一种采用客户端-服务器(Client-Server,CS)架构的软件应用,它允许用户通过网络对远程设备或系统进行实时监控和管理。本文将深入探讨该系统的实现原理、关键技术以及源代码分析。 1. **系统...

Global site tag (gtag.js) - Google Analytics