UDP(强行关闭了一个现有的连接远程主机)

简介: 事件回顾:客户端连接服务器 ,一段时间后会发生服务器“挂掉”的情况,为了找到原因,在调试模式下运行服务器,捕捉到了一下异常: 红色框出来的即为异常原因:强行关闭了一个现有的连接远程主机     然后就发生了可怕的事情,如下图: 不断抛出此异常。
+关注继续查看

事件回顾:客户端连接服务器 ,一段时间后会发生服务器“挂掉”的情况,为了找到原因,在调试模式下运行服务器,捕捉到了一下异常:

红色框出来的即为异常原因:强行关闭了一个现有的连接远程主机

   

然后就发生了可怕的事情,如下图:

不断抛出此异常。。。

网上找了下解决方法:觉得比较靠谱的如下:

注意:C#命名空间在 system.Net.socket.socket.IOControl

可是我的是VB.NET写的,就将上面这段话改成了VB.NET语言:

注意:VB.NET命名空间是:System.Net.Sockets

 Dim IOC_IN As Integer = &H80000000
            Dim IOC_VENDOR As Integer = &H18000000
            Dim SIO_UDP_CONNRESET As UInteger = IOC_IN Or IOC_VENDOR Or 12
            handler.IOControl(Convert.ToInt32(SIO_UDP_CONNRESET), New Byte() {False}, Nothing)
View Code

注:上述方案是针对UDP协议,而我在程序中使用的是TCP协议,所以最终的解决方案是:

listener = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
                listener.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, True)

允许套接字绑定在已使用的地址中。测试服务器不会当掉!

  End

  • 感谢你的阅读。如果你觉得这篇文章对你有帮助或者有启发,就请推荐一下吧~你的精神支持是博主强大的写作动力。欢迎转载!
  • 博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高(其实是个菜B),不足和错误之处在所难免,希望大家能够批评指出。
  • 欢迎加入.NET 从入门到精通技术讨论群→523490820 期待你的加入
  • 不舍得打乱,就永远学不会复原。被人嘲笑的梦想,才更有实现的价值。
  • 我的博客:http://www.cnblogs.com/zhangxiaoyong/
目录
相关文章
|
6天前
|
网络协议 算法 Linux
Linux网络-UDP/TCP协议详解(下)
Linux网络-UDP/TCP协议详解(下)
|
6天前
|
域名解析 存储 网络协议
Linux网络-UDP/TCP协议详解(上)
Linux网络-UDP/TCP协议详解(上)
|
15天前
|
存储 缓存 网络协议
TCP vs UDP:揭秘可靠性与效率之争
在网络通信中,TCP和UDP是两种最常用的传输层协议。本文将深入探讨TCP和UDP之间的区别,包括连接方式、服务对象、拥塞控制、流量控制和首部开销等方面,帮助读者在不同应用需求下选择适合的协议。无论你是技术爱好者还是网络工程师,这篇文章定能帮助你了解并应用TCP和UDP的差异,提升你的网络传输效率和可靠性。
|
网络协议 Linux 网络安全
Linux netcat对tcp/udp的连接和监听
netcat是一个用于TCP/UDP连接和监听的linux工具, 主要用于网络传输及调试领域。 netcat 可以打开TCP连接发送UDP报文,监听在TCP和UDP端口,以及TCP端口扫描,并将错误消息输出到屏幕上。
3441 0
|
算法 C# Windows
Windows下的UDP爆了10054--远程主机强迫关闭了一个现有的连接
故事是这样的。 前几天在网上逛,看到了一个漂亮的坦克模型。 我觉得这个坦克可以做一个游戏,那需要一些服务器代码。 因为是实时对战的,听说TCP有很多不适,选择了UDP。 得知有一种算法可以解决UDP丢包乱序的问题,就封装成了C#,雄赳赳气昂昂准备大搞一番。
1995 0
|
网络协议 Linux
linux内核参数调优,缓冲区调整,tcp/udp连接管理,保持,释放优化,gossary,terms
changing a readonly file (linu single user mode) 执行mount -o remount rw -t ext3 / 让根文件系统重新mount成读写,你就可以自由编辑整个文件系统了 /etc/kinittab or /etc/rc.
1198 0
|
机器学习/深度学习 网络协议 安全
Socket编程 (连接,发送消息) (Tcp、Udp) - Part1
原文 http://www.cnblogs.com/zengqinglei/archive/2013/04/27/3046119.html Socket编程 (连接,发送消息) (Tcp、Udp)  本篇文章主要实现Socket在Tcp\Udp协议下相互通讯的方式。
983 0