sendto发送显示正常,返回值>0, WSAGetLastError返回值也是0,但是抓包,什么数据都没有~

smalltreehere 2013-01-23 05:29:53
sendto发送显示正常,返回值>0, WSAGetLastError返回值也是0,但是抓包,什么数据都没有~~~ 谁知道这个是什么问题,由什么造成的?
...全文
565 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wocow3 2013-04-22
  • 打赏
  • 举报
回复
真正开始发数据去前,系统需要知道对方的MAC地址(如果非同一子网,至少需要知道网关的MAC地址)。如果没有这个信息,这就意味着系统会发ARP,查询目的IP(或者网关)的MAC。在ARP返回MAC之前,不会有IP包发出。 如果ARP没有返回MAC,sendto也不会失败,实际上,大多数实现,send(to)都是一个异步操作,只要缓冲区能容纳数据,send就返回成功。而如果一定时间后底层的ARP确认超时失败,send到缓冲区的数据会被简单的丢弃
youngwolf 2013-04-22
  • 打赏
  • 举报
回复
数据没发出,怎么抓得到? 网络编程不等于函数调用,这句话刚好又用上。 sendto只是内存拷贝,真正的数据发送你控制不了,你只是把数据交给了系统的网络模块而已,至于真正的发送,还有很多事情有做,不过好在你不用也管不着了。
merrylzg 2013-04-22
  • 打赏
  • 举报
回复
检查端口是否不统一。
060 2013-03-25
  • 打赏
  • 举报
回复
你的 sendto 是不是 发送端和接收端在同一台主机上。
hurryboylqs 2013-03-23
  • 打赏
  • 举报
回复
你把网线拔了sendto也是成功的,因为udp是不可靠协议
fishion 2013-03-23
  • 打赏
  • 举报
回复
这也是udp协议不可靠之处,要你通过自定义数据协议来完善可靠性,而抓包软件用主流的
smallhappiness 2013-03-23
  • 打赏
  • 举报
回复
你是udp发包把,成功不代表对端一定能收到。 你先sendto本地上抓的看看? 同时可以netstat看看连接发送情况
bustoy 2013-01-28
  • 打赏
  • 举报
回复
推荐抓包工具:Microsoft Network Monitor
zhangyihu321 2013-01-28
  • 打赏
  • 举报
回复
WSAGetLastError 只有发生socket 错误时才能用
z8323664 2013-01-23
  • 打赏
  • 举报
回复
mark 我也想知道。 是不是只要用sendto将数据送到网卡, 用抓包工具就能抓到吗?
长尾巴的悟空 2013-01-23
  • 打赏
  • 举报
回复
那就要看你这个数据有没有发出来了
chuachua66 2013-01-23
  • 打赏
  • 举报
回复
用什么抓的包?是不是抓包软件的使用问题呢?
jimette 2013-01-23
  • 打赏
  • 举报
回复
接受呢

18,356

社区成员

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

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