Socket做UDP通讯,怎么也会报错:远程主机强迫关闭了一个现有的连接。

mcuatmel 2019-08-08 05:14:27
Udp不是一个无连接通讯吗?怎么会报这个错误?
我没开Udp服务端软件,只开了客户端。
...全文
838 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_37646670 2019-08-08
  • 打赏
  • 举报
回复
我出错的情况是,我close了udp,然后去调用udp.receive,就会报这个错 前面加个 if(udp.Available>0) 可以解决
datafansbj 2019-08-08
  • 打赏
  • 举报
回复
贴一下代码,如果只是发送,应该不会出现这种错误。如果先 Connect 再发送后,在 Connect 时可能出这种错误。
github_36000833 2019-08-08
  • 打赏
  • 举报
回复
Windows下是存在着这种情况。根据微软文档 https://docs.microsoft.com/zh-cn/windows/win32/api/winsock/nf-winsock-recvfrom
引用
WSAECONNRESET: The virtual circuit was reset by the remote side executing a hard or abortive close. The application should close the socket; it is no longer usable. On a UDP-datagram socket this error indicates a previous send operation resulted in an ICMP Port Unreachable message. (中文翻译) 在UDP数据报套接字上,此错误表示先前的发送操作导致ICMP端口无法访问消息。
当一个UDP包发送到目标主机,目标主机的网络驱程进行处理时,发现目标端口无人侦听。这时,目标主机可以发送一个ICMP消息,表示无法抵达指定端口。该ICMP消息可能被发送者处理成WSAECONNRESET错误。 在做SNMP扫描时,偶尔会碰到这种错误。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧