socket通信中,客戶端服務器可以使用recv & send進行數據收發。
#include <sys/socket.h>
ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags); //buff存放接收數據
ssize_t send(int sockfd, const void *buff, size_t nbytes, int flags); //buff存放待發送數據
flags參數值爲0或:
flags | 說明 | recv | send |
---|---|---|---|
MSG_DONTROUTE | 繞過路由表查找 | √ | |
MSG_DONTWAIT | 僅本操作非阻塞 | √ | √ |
MSG_OOB | 發送或接收帶外數據 | √ | √ |
MSG_PEEK | 窺看外來消息 | √ | |
MSG_WAITALL | 等待所有數據 | √ |
send執行流程:
recv執行流程: