int recv(int sockfd, void* buffer, int len, unsigned int flags)
對方發來的數據是一包一包來的,就是說對方發送一個完整的信息時,多次調用send()函數,我怎么才能全部接收這些send()發來的數據呢?
3 个解决方案
tcp還是udp呢?udp的話要判斷是否丟包了
每次收包的時候,把收到的數據放到另一個臨時緩沖區里
TCP是面向流的協議,沒有邊界的,需要你自己定義。
例如可以在報頭加個長度字段,或者在報文的末尾添加結束符
接收的時候根據報文長度之類的信息,不斷調用recv,直到接收完畢為止