WSAECONNRESET (10054)错误,怎样解决这个问题!

Sander 2005-11-15 12:09:40
我做了一个udp的测试程序,一端 定时send数据到 另一端,但只要我关掉一端,
这个发送端就会在OnRecieved()中有假读现象:报告是10054

但对方机子关闭的时候,或连上的时候就没有这个error了。
意思是:
存在的连接被远程主机强制关闭。通常原因为:远程主机上对等方应用程序突然停止运行,或远程主机重新启动,或远程主机在远程方套接字上使用了“强制”关闭(参见setsockopt(SO_LINGER))。另外,在一个或多个操作正在进行时,如果连接因“keep-alive”活动检测到一个失败而中断,也可能导致此错误。此时,正在进行的操作以错误码WSAENETRESET失败返回,后续操作将失败返回错误码WSAECONNRESET。

---------
首先,怎样改正接收端关闭的问题,避免发送端出现10054的问题。(我有closesocket(m_nSocket))
二,怎样在发送端解决,即使接收端异常关闭,也可以避免这个现象。
请叫高人:)
...全文
1724 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengxihe 2005-11-17
  • 打赏
  • 举报
回复
udp可以忽略这个问题
Sander 2005-11-17
  • 打赏
  • 举报
回复
但这样会影响接收问题呀
nuaawenlin 2005-11-16
  • 打赏
  • 举报
回复
收到了icmp 差错报文,表示端口不可到达,但是udp数据为0
lianglp 2005-11-16
  • 打赏
  • 举报
回复
GZ
Sander 2005-11-16
  • 打赏
  • 举报
回复
请问:nuaawenlin(飘人)
怎样避免这样的问题。
我是udp send, 我不管接收端,可以吗,还是有接收端怎样断开才能不让发送端,不出现这个error.
Sander 2005-11-15
  • 打赏
  • 举报
回复
To:laiyiling(【龙工一号●CSDN】)
不懂你要讲什么,我的是udp, 我不是对方close socket的时候,给我的这个错误,
我是sendto的时候,onRecieve就有, 怎么避免?
Kudeet 2005-11-15
  • 打赏
  • 举报
回复
If the socket is of type SOCK_STREAM and the remote side has shut down the connection gracefully, a Receive will complete immediately with 0 bytes received. If the connection has been reset, a Receive will fail with the error WSAECONNRESET.
Sander 2005-11-15
  • 打赏
  • 举报
回复
关键是,我是udp,根本不连接呀
38062708 2005-11-15
  • 打赏
  • 举报
回复
重载 OnClose() 你会发现对方断开连接的消息,如对方已断开连接,就把你的连接也删除,需要连接时再 Connect()

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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