当前位置:  技术问答>linux和unix

sendto() 返回>0,说明数据已经被发到网络上了嘛?

    来源: 互联网  发布时间:2015-04-07

    本文导语:  raw packet socket sendto()返回大于0 ,似乎并不说明包已经被发到网络上了, 只是说明包已经被放到发送队列里(队列有空,默认好像是30个包) 有没有办法等包已经被发到网络上然后再让sendto返回? | ...

raw packet socket

sendto()返回大于0 ,似乎并不说明包已经被发到网络上了,

只是说明包已经被放到发送队列里(队列有空,默认好像是30个包)

有没有办法等包已经被发到网络上然后再让sendto返回?

|
用ioctl将缓冲区设置为0
判断数据是否发送,不应该只限定于sendto调用,应该与你的消息事务有关,比如对端给你返回一个相应就表示你把消息发送出去了,否制,发送失败

|
sendto返回大于零说明数据已经送到系统缓冲区。但是UDP的机制似乎不可能得知是否已经发送到网络上去。谁叫UDP是不保险的呢?

不过UDP也可以使用connect函数以增加质量的, 参考以下程序,很不错的!

http://www.fanqiang.com/a4/b7/20011023/1000001500.html

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于udp sendto时候端口选定问题
  • [疑惑]UDP中的recvfrom奇怪现象,怎么保持上次sendto的内容???哪位帮解释一下
  • 请教关于sendto问题
  • netlink,中用户使用sendto有什么意义
  • 用sendto(socket, buf, strlen(buf), ...)发送一个包,如何得到发送的源地址(也就是本机的源地址)
  • 关于网络通信中recvfrom和sendto的用法
  • 期待高手:关于udp的sendto,发给本机ip,为什么我抓不到包?
  • socket sendto: Network is unreachable?
  • 当主机多地址时,sendto()发送函数为什么携带的源IP地址永远都是第一个?
  • 为什么linux中sendto函数中的msg.msg_iovlen=1;
  • linux下socket问题:为什么我的socket服务程序(UDP)总是第一次sendto()失败?
  • ping的时候出现sendto: No such process
  • 如何用sendto实现sendmsg
  • linux socket sendto( )函数问题,初学,大家指点!
  • 为什么 sendTo 的电子邮件址址用自己本机的地址就行也可以发送到本机,但如果用一般的电子邮件地址如: xxx@xxx.com ,就出现如下错误:


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3