C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳)
C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳)
Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, true); //必须先启用接收超时选项,设置接收超时才有用。
Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, true); //必须先启用发送超时选项,设置发送超时才有用。
Socket.ReceiveTimeOut=10000;//毫秒
Socket.SendTimeOut=10000;//毫秒
2、对于长连接
可以通过 Socket 中的心跳检测机制进行处理.
Socket的底层IO一般通过 WSAIoctl 函数进行设置. C# 中对此函数进行了封装, 即Socket.IOControl 方法.
publicint IOControl(
IOControlCode ioControlCode,
byte[] optionInValue,
byte[] optionOutValue
)
其中第一个参数为 Socket IO 控制代码; 第二个参数为传入参数值, 第三个参数为传出值.
在Winsock 2 中定义了许多 Socket IO 控制类型 , 其中有一项: KeepAliveValues , 控制 TCP keep-alive 数据包的发送以及发送间隔。默认值为2个小时, 当间隔时间超过这个设定后, socket就会连续发送5次连接信号, 若客户端无回应, 则此 client socket会断开.
我们可以如下调整这个间隔时间:
newClient.Client.IOControl(IOControlCode.KeepAliveValues,BitConverter.GetBytes(120), null); // 设置为 2分钟.
以上即为2种网络异常连接断线检测的方法.
C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳)的更多相关文章
- 解决adb网络连接中出现的“由于目标计算机积极拒绝,无法连接”错误
在调试一块全志A83T安卓工控板(已root),启动后,安卓系统正常,设置好以太网 的静态IP地址:192.168.1.181,并接好网线,同时开发电脑WIN7系统IP地址 也是129.168.1.x ...
- VMware Workstation中网络连接之桥接、NAT和Host-only
在Windows XP系统中,安装好VMware Workstation虚拟机软件以后,我们可以查看一下"网络连接"窗口: 在窗口中多出了两块网卡: VMware Network ...
- vmware中三种网络连接方式
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note vmw ...
- vmware中三种网络连接方式(复制)
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 我怕链 ...
- LTE Module User Documentation(翻译10)——网络连接(Network Attachment)
LTE用户文档 (如有不当的地方,欢迎指正!) 16 Network Attachment(网络连接) 正如前面章节 Basic simulation program 所述,连接用户到基站时通过调 ...
- Win7+VMware Workstation环境下的CentOS-Linux网络连接设置
Win7+VMware Workstation环境下的CentOS-Linux网络连接设置 http://blog.sciencenet.cn/blog-430991-507041.html 近日 ...
- [转载]VMWare网络连接透析
http://blog.csdn.net/struggleyb/article/details/1102214 以前在学校,VMWare里面的Gentoo Linux是采用network bridge ...
- VMware虚拟机上网络连接解决方案
VMware虚拟机上网络连接解决方案 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 从虚拟机上连接外部网络,需要设置以下几个地方. 1.服务 (1)打开 ...
- vmware虚拟机三种网络连接方式
一.概述 vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们可以在选项栏的“ ...
随机推荐
- elastalert docker安装
基于对elasticsearch中数据监控需要,我尝试了sentinl和elastalert两款工具.虽然elastalert是纯文本,但易配置管理.elk自带的watch需要付费才可使用. 6.2x ...
- nginx 的 重定向
1. ngx.redirect(uri, status?) 301/302重定向 redirect 为外部重定向,有两种形式: rewrite ^ /foo? redirect; # ngi ...
- [转]【Servlet】Servlet的访问过程
创建时间:6.15 Servlet的访问过程 1. 画图描述整个访问过程: *每次访问service()方法都会创建一对新的request和response对象,都不一样 2. 访问过程2: 问题:对 ...
- leetcode4 Median of Two Sorted Arrays学习记录
学习了扁扁熊的题解:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/solution/4-xun-zhao-liang-ge- ...
- Java 中的各种锁
table th:first-of-type { width: 100px; } 锁的类型 锁的实现 乐观锁 在数据库中可以使用version版本号去实现:在Java中是使用CAS(Compare A ...
- opencart 3伪静态seo url设置教程
opencart 3已经为我们做好了url伪静态功能,我们只要做一些简单的设置就能实现seo url,首先开启伪静态功能,看看文件.htaccess事发后有存在如下规则,如果没有需要先添加下面的代码 ...
- 编程语言及python介绍
编程语言及python介绍 1.编程语言分类 机器语言 优点:执行效率高 缺点:开发效率极低,跨平台性差 汇编语言 优点:较机器语言执行效率稍低 缺点:较机器语言开发效率稍高,仍然很低,跨平台性差 高 ...
- CentOS7 安装 vsftpd 服务
CentOS7 安装 vsftpd 服务 0.FTP简介 FTP服务是一个跨平台的文件共享解决方案 0.1.FTP两种模式的区分:服务端的主被动模式 1)ftp一般分为两种模式,PORTFTP和PAS ...
- zzulioj - 2623: 小H的作业题
题目链接:http://acm.zzuli.edu.cn/problem.php?id=2623 题目描述 期末考试即将来临,同学们都积极的在图书馆复习.今天小H也来到图书馆复习,小H掏 ...
- 【贪心】【P5521】[yLOI2019] 梅深不见冬
B [yLOI2019] 梅深不见冬 Background 风,吹起梅岭的深冬:霜,如惊涛一样汹涌:雪,飘落后把所有烧成空, 像这场,捕捉不到的梦. 醒来时已是多年之久,宫门铜环才长了铁锈, 也开始生 ...