因为服务端不是自己写,不能进行心跳检测,只能尝试其他方式。

在尝试其他方式失败的情况下,无奈的开始尝试增加一条线程进行连接测试,即使用一个Socket_client_test 连接服务端,然后使用disconnect(true)方式,当连接断开时抛出异常并结束线程,此时判断为断开,开始重连。

测试代码如下:

private void client_connect_test()
        {
            string test_host = Tb_clientIP.Text;
            int test_port = Convert.ToInt32(Tb_clientPort.Text);
            IPAddress test_ip = IPAddress.Parse(test_host);
            IPEndPoint test_endPoint = new IPEndPoint(test_ip, test_port);

try
            {
                client_test_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                client_test_socket.Connect(test_endPoint);
                Thread.Sleep(20);
                client_test_socket.Disconnect(true);  //true会将进程一直保持在这一步直到发生异常,false在重复运行时容易发生错误,暂时就没试了。。。
            }
            catch (Exception e)
            {
                log_writer("#4 远程断开,重新连接。" + e.Message);
                client_reboot_need = true;  //需重启的标志
            }
        }

纯粹瞎看自学,先以目的为指导,之后再看看原因了。。。

转载于:https://www.cnblogs.com/Elvis-Luo/p/9786706.html

Socket 客户端的断开重连相关推荐

  1. Socket连接与断开重连

    Socket连接与断开重连 近期在做一个与硬件交互的项目,通过TCP/IP协议通讯. 首先来看一下Socket通信模型 思路是使用service,需要频繁的与服务端交互所以使用BindService ...

  2. QT 中Socket客户端与服务器异常断开后重连

    在现在的项目开发中,经常要使用TCP/IP协议来进行通讯,但有时候与服务器端的链接由于网络问题导致连接异常或断开,这就需要我们的软件能自动重连,在Linux中,我们的思维一般是通过心跳包来监控连接是否 ...

  3. C# Socket客户端采用双线程断网重连断线重连)

    C# Socket客户端采用双线程断网重连断线重连 2021年07月15日 13:38:18更新 C# Socket服务端 双线程断网重连断线重连 C# Socket客户端采用双线程断网重连断线重连 ...

  4. c语言linux TCP长连接 socket收发范例 断开自动重连

    原文链接:https://blog.csdn.net/chenhao0568/article/details/103420615 c语言linux TCP长连接 socket收发范例 断开自动重连 改 ...

  5. Socket 客户端判断服务器是否断开连接

    //  首先,Socket类的Connected属性只表示最后一次I/O操作的状态,如果这之后[连接的另一方]断开了,它还一直返回true, 除非你再通过socket来发送数据.所以通过个属性来判断是 ...

  6. 浅谈IM软件客户端的断线重连、心跳和长在线

    ----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...

  7. Java:socket服务端,socket服务端支持多连接,socket客户端,socket客户端支持发送和接受

    一.Java之socket服务端 新建一个Java工程 命名 给他先创建一个类 在类里面我们做一个main 这里面也需要,创建套接字,IP号,端口号 但是java中有一个类         Serve ...

  8. java mina长连接短连接_MINA实现TCP长连接(四)——断开重连

    前言 今天涉及以下内容: mina官网及实现客户端需要的jar包 客户端实现重连接涉及到的几个类 重连接在Activity中的使用 效果图和项目结构图 重连接涉及到的类源码 先来波效果图 image. ...

  9. 31 socket客户端. 服务器 异常 语法

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口. 基于文件类型的套接字家族 套接字家族的名字:AF_UNIX unix一切皆文件,基于文件的套接字调用的就是底层的文件系统来 ...

最新文章

  1. python封装方法有几种_Python中的封装有什么作用?
  2. 移动端点击屏幕按钮闪现的灰色底框
  3. python优秀网友学习笔记推荐
  4. linux性能监控常用命令
  5. Nginx 场景应用
  6. python怎么提高_Python心得--如何提高代码质量
  7. 【cs231】损失函数与优化
  8. SwiftyJSON
  9. 高质量发展-协调发展指标体系构建及测算
  10. fedora9的安装
  11. bootstrap的提示框bootbox.js
  12. 大数据与云计算之间的关系是怎样的?
  13. 计算机8421法转换,8421bcd码转换二进制
  14. open3d画3D矩形框
  15. Fluent多组分设置及化学反应
  16. 【网络安全】CSRF漏洞详细解读
  17. 实模式、保护模式和虚拟8086模式
  18. 人工智能在各个领域里的应用场景
  19. 新版2022高仿QQ,利用Java swing1:1模仿qq编写的聊天程序
  20. Base64 SHA1 MD5

热门文章

  1. matlab 高斯函数_光学与matlab:高斯光的模拟
  2. php post请求跳转,学习猿地-php如何实现post跳转
  3. Asp.Net验证控件和表达式测试题
  4. mybatis there is no getter named forInteger
  5. jupyter命令把.ipynb文件转化为.py文件
  6. 读“ModSecurity配置关键字说明”之摘抄
  7. TensorFlow学习笔记(十八)tf.reshape矩阵变形
  8. arcgis-online-python-scripts
  9. Elasticsearch对垒8大竞品技术
  10. 【Spring 5】响应式Web框架实战(下)