UDP 远程主机强迫关闭了一个现有的连接
2014-03-07 11:10
281 查看
在UDP通信过程中,如果客户端中途断开,服务器会收到一个SocketException,错误ID为10054,描述是“远程主机强迫关闭了一个现有的连接”,紧接着的事就可怕了,UDP服务终止监听,所有客户端都受到了影响。也就是说一个客户端引起的异常导致了整个系统的崩溃。
找了好几天了。终于找到了解决办法。
在初始化对象后设置属性如下:
uint IOC_IN = 0x80000000;
uint IOC_VENDOR = 0x18000000;
uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12;
ClientSocket.IOControl((int)SIO_UDP_CONNRESET, new byte[] {Convert.ToByte(false)}, null);
Socket.IOControl 方法 (IOControlCode, Byte[], Byte[])
使用 IOControlCode 枚举指定控制代码,为
Socket 设置低级操作模式。
一个
IOControlCode 值,它指定要执行的操作的控制代码。
optionInValue
Byte 类型的数组,包含操作要求的输入数据。
optionOutValue
Byte 类型的数组,包含由操作返回的输出数据。
异常
备注
此方法提供对 Socket 类的当前实例所基于的操作系统 Socket 的低级访问。有关更多信息,请参见 MSDN Library 中的 WSAIoctl 文档。
找了好几天了。终于找到了解决办法。
在初始化对象后设置属性如下:
uint IOC_IN = 0x80000000;
uint IOC_VENDOR = 0x18000000;
uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12;
ClientSocket.IOControl((int)SIO_UDP_CONNRESET, new byte[] {Convert.ToByte(false)}, null);
Socket.IOControl 方法 (IOControlCode, Byte[], Byte[])
使用 IOControlCode 枚举指定控制代码,为
Socket 设置低级操作模式。
参数
ioControlCode一个
IOControlCode 值,它指定要执行的操作的控制代码。
optionInValue
Byte 类型的数组,包含操作要求的输入数据。
optionOutValue
Byte 类型的数组,包含由操作返回的输出数据。
返回值
optionOutValue 参数中的字节数。异常
异常类型 | 条件 |
---|---|
SocketException | 试图访问套接字时发生错误。有关更多信息,请参见备注部分。 |
ObjectDisposedException | Socket 已关闭。 |
InvalidOperationException | 试图不使用 Blocking 属性更改阻止模式。 |
备注
此方法提供对 Socket 类的当前实例所基于的操作系统 Socket 的低级访问。有关更多信息,请参见 MSDN Library 中的 WSAIoctl 文档。
相关文章推荐
- UDP错误10054:远程主机强迫关闭了一个现有的连接
- UDP 远程主机强迫关闭了一个现有的连接
- 关于UDP消息服务抛出“远程主机强迫关闭了一个现有的连接”的异常说明及处理方法
- C#编程UDP通信过程中出现【远程主机强迫关闭了一个现有的连接0x80004005】的解决方法
- Windows下的UDP爆了10054--远程主机强迫关闭了一个现有的连接
- C#编程UDP通信过程中出现【远程主机强迫关闭了一个现有的连接0x80004005】的解决方法
- UDP错误10054:远程主机强迫关闭了一个现有的连接
- UDP错误10054:远程主机强迫关闭了一个现有的连接
- 关于UDP消息服务抛出“远程主机强迫关闭了一个现有的连接”的异常说明及处理方法
- 【Android基础知识】Android Studio 编译慢及 Adb connection Error:远程主机强迫关闭了一个现有的连接
- svn failed: 远程主机强迫关闭了一个现有的连接.
- Adb connection Error:远程主机强迫关闭了一个现有的连接
- eclipse在运行模拟器时候提示:Adb connection Error:远程主机强迫关闭了一个现有的连接
- WindowsFormsApplicationBase 遇 Remoting 报 远程主机强迫关闭了一个现有的连接
- 远程主机强迫关闭了一个现有的连接;通讯链接失败;sde入库程序。
- 解决异常:Adb connection Error:远程主机强迫关闭了一个现有的连接。
- C# Socket TcpClient 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。
- Adb connection Error:远程主机强迫关闭了一个现有的连接
- Adb connection Error:远程主机强迫关闭了一个现有的连接
- eclipse过一会就出现Adb connection Error:远程主机强迫关闭了一个现有的连接。