TCP socket数据读写
#include <sys/types.h>
#include <sys/socket.h>
ssize_t recv(int sockfd, void* buf, size_t len, int flags)
ssize_t send(int sockfd, const void* buf, size_t len. int flags)
#flag 默认值0
#recv/send 读、写 buf缓冲区的位置
#len 缓冲区的大小
#返回值 实际读写的数据大小
#读写失败,返回-1,并且设置errno
UDP socket数据读写
#include <sys/types.h>
#include <sys/socket.h>
ssize_t recvfrom(int sockfd, void* buf, size_t len, int flag, struct sockaddr* src_addr, socklen_t* addrlen)
ssize_t sendto(int sockfd, const void* buf, size_t len, int flag, struct socaddr* dst_addr, socklen_t addrlen)
带外数据
内核通知应用程序带外数据到达的两种方式
#I/O复用产生的异常事件
#SIGURG信号
#include <sys/socket.h>
int sockatmark(int sockfd);
sockatmark判断sockfd是否有外带标记,
#有,返回1,利用flag=MSG_OOB标志的recv来接收数据