Socket接口
Linux Socket函数库
int socket(int domain, int type, protocol)
用于分配Socket句柄,在特定的网络(domain)下,使用特定的协议(protocol)和数据传送方式(type)进行通信
- domain – 通信使用的协议族、网络类型(TCP/IP协议族是ARPA Internet协议,AF_INET)
- type – 数据传送方式(TCP是SOCK_STREAM,UDP是SOCK_DGRAM)
- protocol – 通信中使用的协议(IPPROTO_TCP或IPPROTO_UDP)
int close(int fd)
关闭Socket
- fd – Socket描述符
int bind (int sockfd, struct sockaddr *my_addr, int addrlen)
给Socket指定本地地址
- dockfg – Socket描述符
- addrlen – my——addr结构的长度
- my——addr本地地址
int listen(int s, int backlog)
准备接受连接请求
- s – Socket描述符
- backlog – 链接请求暂存队列长度
int accept(int s, struct sockaddr *addr, int *addrlen)
接受指定Socket上的连接请求
- s – Socket描述符
- addr – 要接受的对方地址(IP地址和端口号)
- addrlen – 地址长度
int connect(int sockfd, struct sockaddr *serv_sddr, int addrlen)
主动建立连接
- sockfd – Socket描述符
- servaddr – 通信目的地址
- addrlen - 目的地址长度
send&recv
发送和接受数据,分别是有连接和无连接的
- int send(int s, const void *msg, int len, unsigned int flags)
-
int sendto(int s, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)
-
int recv(int s, void *buf, int len, unsigned int flags)
-
int recv(int s, void *buf, int len, unsigned int flags, struct sockaddr *from, int fromlen)
read/write
用系统文件操作进行Socket通信
- ssize_t read(int fd. void *buf, size_ count)
- ssize_t write(int fd, const void *buf, size_t count)