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

udp 套接口接受缓冲区的疑惑

    来源: 互联网  发布时间:2015-12-02

    本文导语:  使用UDP接收客户端发来的数据。数据包的大小不一定,所以使用buffer[65535]来recvfrom缓冲区的数据。 我有些疑惑往大家能够给予帮助: UDP的一个套接口有一个接受缓冲区来储存所有客户端发来的数据。每次调用recvfrom...

使用UDP接收客户端发来的数据。数据包的大小不一定,所以使用buffer[65535]来recvfrom缓冲区的数据。
我有些疑惑往大家能够给予帮助:
UDP的一个套接口有一个接受缓冲区来储存所有客户端发来的数据。每次调用recvfrom来接收数据包是读到其中一个客户的数据包后返回,还是要读到请求的字节数?
我是担心我请求65535字节的数据,读到了不止一个客户的数据。

|
int recvfrom(int sockfd,void *buf,int len,unsigned int flags,struct sockaddr * from int *fromlen) 
int sendto(int sockfd,const void *msg,int len,unsigned int flags,struct sockaddr *to int tolen) 

sockfd,buf,len的意义和read,write一样,分别表示套接字描述符,发送或接收的缓冲区及大小.recvfrom负责从sockfd接收数据,如果from不是NULL,那么在from里面存储了信息来源的情况,如果对信息的来源不感兴趣,可以将from和fromlen设置为NULL.sendto负责向to发送信息.此时在to里面存储了收信息方的详细资料. 



所以只要设置了from就可以了

|
udp用的是dgram类型socket,你从这个字面上看也能知道udp是基于包的,收到一个完整的包就会返回。

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












  • 相关文章推荐
  • 在内核模块级缓冲UDP的问题(当然不是SOCKET编程了。)
  • Qt:UDP:如何划分接收到的UDP包的界限
  • udp包大于1500字节网络传输会分包吗?udp tcp多大的包比较合适?
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • udp方式抓取网页
  • python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
  • udp socket客户端和udp服务端程序示例分享
  • TCP与UDP通信问题!
  • 请问下怎么关闭SUSE 9.1下UDP的checksum?
  • 如何判断udp端口可达
  • 关于epoll&udp的问题?
  • UDP包怎么生成啊?用什么函数??简单问题,帮个忙哈
  • 对于socket UDP传输,一个端口只能被一个进程绑定?
  • IP,UDP,TCP的校验和计算
  • 基于UDP的数据传输 UDT
  • 服务进程收到的第一个UDP包的远端地址不对?
  • udp问题
  • 关于udp sendto时候端口选定问题
  • jme 0000:07:00.5:eht0:udp checksum error
  • udp的暂时连接
  • udp连接问题


  • 站内导航:


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

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

    浙ICP备11055608号-3