zoukankan      html  css  js  c++  java
  • Socket 客户端的断开重连

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

    在尝试其他方式失败的情况下,无奈的开始尝试增加一条线程进行连接测试,即使用一个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;  //需重启的标志
                }
            }

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

  • 相关阅读:
    沮丧
    实例讲解《Microsoft AJAX Library》(1):DomElement类
    linux0.12系统调用
    关于中断
    dd写img
    linux系统中堆栈的使用方法
    浅析程序的装载
    SourceInsight3.5序列号
    区分进程的逻辑地址空间中段和cpu分段机制中段的概念
    32位计算机的4G可寻址空间
  • 原文地址:https://www.cnblogs.com/Elvis-Luo/p/9786706.html
Copyright © 2011-2022 走看看