当前位置: 技术问答>linux和unix
Linux下怎么用read或recv函数完全接收socket发来的数据?
来源: 互联网 发布时间:2015-11-13
本文导语: int recv(int sockfd, void* buffer, int len, unsigned int flags) 对方发来的数据是一包一包来的,就是说对方发送一个完整的信息时,多次调用send()函数,我怎么才能全部接收这些send()发来的数据呢? | ...
int recv(int sockfd, void* buffer, int len, unsigned int flags)
对方发来的数据是一包一包来的,就是说对方发送一个完整的信息时,多次调用send()函数,我怎么才能全部接收这些send()发来的数据呢?
对方发来的数据是一包一包来的,就是说对方发送一个完整的信息时,多次调用send()函数,我怎么才能全部接收这些send()发来的数据呢?
|
TCP是面向流的协议,没有边界的,需要你自己定义。
例如可以在报头加个长度字段,或者在报文的末尾添加结束符
例如可以在报头加个长度字段,或者在报文的末尾添加结束符
|
tcp还是udp呢?udp的话要判断是否丢包了
每次收包的时候,把收到的数据放到另一个临时缓冲区里
每次收包的时候,把收到的数据放到另一个临时缓冲区里