完成端口中WSARecvFrom返回1234错误

ima_zhan 2019-08-17 02:25:51
调用了WSARecvFrom之后,GetQueuedCompletionStatus返回错误,调用GetLastError得到1234错误,也就是GetQueuedCompletionStatus,在winerror文件里是这么定义的:No service is operating at the destination network endpoint on the remote system.按说我只是开启了本地的udp接收,怎么会返回远端错误呢。
...全文
179 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ima_zhan 2019-09-12
  • 打赏
  • 举报
回复
终于找到问题了,是向一个远程未开启的端口发送数据导致的,在服务器端向远端未开启的端口发送数据后会受到一个代码为1234的错误提示,但是这个错误提示是以接收数据请求的方式返回的,也就是把提交的RecvFrom请求给使用了,而在错误处理里又没有再次提交接收请求,所以导致后续无法再接收数据。
那为什么在本机调试没问题呢?
是由于本机向远端未开启的端口发送数据后未收到该错误,原因可能是操作系统版本不同,本机是win10家庭版,服务端是专业版。
ima_zhan 2019-08-22
  • 打赏
  • 举报
回复
引用 5 楼 worldy 的回复:
你应该是没有预先投递WSARecv或WSAAccept就调用GetQueuedCompletionStatus

投递了,投递的是WSARecvFrom
worldy 2019-08-22
  • 打赏
  • 举报
回复
你应该是没有预先投递WSARecv或WSAAccept就调用GetQueuedCompletionStatus
Hippop314 2019-08-22
  • 打赏
  • 举报
回复
很多情况下是使用的参数或者结构体没有初始化好引起的,结构体初始化时记得先清零,有些结构体它有一个size字段,这个字段需要赋值为当前结构体的大小。
worldy 2019-08-22
  • 打赏
  • 举报
回复
你使用TCP的创建完成端口看看是否正常?UDP的使用完成端口没有用过,不知道是否能用
ima_zhan 2019-08-20
  • 打赏
  • 举报
回复
引用 3 楼 zgl7903 的回复:
是否是防火墙之类的? 试试 127.0.0.1 localhost 呢

应该不是防火墙,其它程序能进行udp的收发
zgl7903 2019-08-19
  • 打赏
  • 举报
回复
是否是防火墙之类的? 试试 127.0.0.1 localhost 呢
ima_zhan 2019-08-18
  • 打赏
  • 举报
回复
在自己的win10上开发的,运行没啥问题,但是放到另一台机器上,同样是win10,无法接收udp数据
smwhotjay 2019-08-17
  • 打赏
  • 举报
回复
只玩过tcp 的iocp. udp的iocp闻所未闻。

18,356

社区成员

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

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