博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于socket tcp 断线重连
阅读量:6654 次
发布时间:2019-06-25

本文共 599 字,大约阅读时间需要 1 分钟。

这个问题困扰过我几次,都没有来得及研究,今天研究一下。

  • 首先写一个最简易的socket tcp程序,连接成功后再关闭服务器然后再用客户端各种操作看是什么情况

测试表明

(1)客户端已经连接,当服务端关闭程序时,客户端调用send函数发送失败,WSAGetLastError() 返回10054(远程主机强迫关闭了一个现有的连接) 

(2)客户端已经连接,当客户端关闭程序时,服务端调用recv函数接收失败,WSAGetLastError() 返回10054(远程主机强迫关闭了一个现有的连接) ,这时对这个客户端的socket调用select函数时,会立即返回可读。

(3)客户端已经连接,当服务端关闭程序时,客户端调用recv函数接收失败,WSAGetLastError() 返回10054

(4)WSAAsyncSelect模式的服务端,当客户端软件关闭时,服务器收到的消息为FD_CLOSE,错误代码为10053(您的主机中的软件中止了一个已建立的连接)

  • 关于客户端断线重连

粗略的做法是,当客户端调用send或recv失败,然后WSAGetLastError()判断错误编号,然后关闭socket。再创建一个socket。然后进行connect操作。

 

下面附上我写的一个基于socket流式套接字的源码服务端支持一对多聊天。socket相关通信都是用windows api。用于新手学习之用。

 

 

 

 

 

转载地址:http://xcjto.baihongyu.com/

你可能感兴趣的文章
Python网络编程(1)---套接字, IPv4, 简单的Client/Server程序
查看>>
Linux下防火墙开启相关端口及查看已开启端口
查看>>
在多台服务器上简单实现Redis的数据主从复制
查看>>
关于Android Device Monitor工具在使用时所遇到的一些问题的解决方法
查看>>
10.SpringMVC注解式开发-处理器方法的参数
查看>>
MFC 自绘按钮 消息响应
查看>>
【C#小知识】C#中一些易混淆概念总结(八)---------解析接口 分类: ...
查看>>
数值类型的保留指定小数位
查看>>
mysql如何添加用户
查看>>
版本管理(转)
查看>>
C# checkboxlist的使用
查看>>
Java 学习笔记 五 -- Jedis
查看>>
02-CSS基础与进阶-day9_2018-09-12-21-02-40
查看>>
MyEclipse编辑xml文件没有提示
查看>>
Activity
查看>>
跨浏览器的事件对象——EventUtil
查看>>
自定义Toast
查看>>
CentOS 报no acceptable C compiler found in $PATH的解决办法
查看>>
Objecttive-C各种问题
查看>>
Python中的"克隆" - 深浅Copy
查看>>