一次sendto,能够分两次recvfrom吗?(100分)

  • 主题发起人 主题发起人 caowei
  • 开始时间 开始时间
C

caowei

Unregistered / Unconfirmed
GUEST, unregistred user!
用UDP协议,发送端用sendto一次发送了10个字符,
接收端能够分两次用recvfrom接收吗?

我用recvvfrom(sock1, buf, 5, ...)
结果接收的是10个字符! 又什么办法能够解决这个问题吗?
用TCP好像是好的,但是我必须用UDP啊.....
 
你这样接受不完整的消息,也许你真的是收到了,但recvvfrom返回的-1,表明
发生了错误。你的思路有问题。你只有分开的发,才能分开的收。
 
不是思路有问题,而是原来别人的一个程序,是用TCP收发的,
他就是一次发,然后先收一个头,再收一个标志,再收数据...
我现在要把它改写为UDP,如果接收的部分不动的话,
我本来打算接收一个头的,结果把后面的标志和数据全部收了,
后面的接收标志的部分就收不到正确的数据了....
真是烦啊........

 
tcp是基于流的,所以可以这样做。udp是基于消息的,收和发是一一对应的。
你的想法在技术上是行不通的。
 
后退
顶部