大佬教程收集整理的这篇文章主要介绍了c# – 当网络电缆断开与网络适配器的连接时,如何获取套接字的状态,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
TCP 192.168.1.2:3645 192.168.1.3:1863已建立
192.168.1.2(服务器IP地址)
192.168.1.3(客户端IP地址)
有人知道原因吗?如何解决这个问题呢 .
我想知道服务器程序如何接收事件并在拔出客户端计算机的网络电缆时关闭套接字.
请给我一些建议或解决方案.
谢谢
连接后,设置socket keepalive属性. msdn说这个开关默认状态是关闭的,如果将keepalive设置为on,socket会自动检查网络状态,并且在socket上次操作后首先检查时间是2小时.但时间可以缩短.然后在第一次检查后,套接字将服务时间.如果连接中断或死亡,
socket会抛出异常.
C#来源:
uint dummy = 0; byte[] inOptionValues = new byte[Marshal.SizeOf(dummy) * 3]; //set keepalive on BitConverter.GetBytes((uint)1).CopyTo(inOptionValues,0); //interval time between last operation on socket and first checking. example:5000ms=5s BitConverter.GetBytes((uint)5000).CopyTo(inOptionValues,Marshal.SizeOf(dummy)); //after first checking,socket will check serval times by 1000ms. BitConverter.GetBytes((uint)1000).CopyTo(inOptionValues,Marshal.SizeOf(dummy) * 2); Socket socket = __Client.Client; socket.IOControl(IOControlCode.KeepAliveValues,inOptionValues,null);
我检查过.它运行正常.
以上是大佬教程为你收集整理的c# – 当网络电缆断开与网络适配器的连接时,如何获取套接字的状态全部内容,希望文章能够帮你解决c# – 当网络电缆断开与网络适配器的连接时,如何获取套接字的状态所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。