(3) 基于 Socket 的 TCP 通信中,用到的系统函数有 socket(), bind(), listen(),connect(),accept(),send(), recv()。请给出每个函数的形式参数,并 解释参数的含义。
socket()函数的形式参数为:int socket(int domain, int type, int protocol)。其中,domain参数指定协议族,type参数指定传输方式,protocol参数指定具体协议。
bind()函数的形式参数为:int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)。其中,sockfd参数指定socket的文件描述符,addr参数指定Socket的本地IP地址和端口号,addrlen参数指定addr结构体的大小。
listen()函数的形式参数为:int listen(int sockfd, int backlog)。其中,sockfd参数为socket的文件描述符,backlog参数指定在队列中等待连接的最大数量。
connect()函数的形式参数为:int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen)。其中,sockfd参数为socket的文件描述符,addr参数指定Socket的远程IP地址和端口号,addrlen参数指定addr结构体的大小。
accept()函数的形式参数为:int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)。其中,sockfd参数为socket的文件描述符,addr参数指定连接的客户端的IP地址和端口号,addrlen参数表示addr结构体的大小。
send()函数的形式参数为:ssize_t send(int sockfd, const void *buf, size_t len, int flags)。其中,sockfd参数为socket的文件描述符,buf参数指定数据发送的首地址,len参数表示数据的长度,flags参数指定发送的选项。
recv()函数的形式参数为:ssize_t recv(int sockfd, void *buf, size_t len, int flags)。其中,sockfd参数为socket的文件描述符,buf参数指定数据接收的缓冲区,len参数表示缓冲区的长度,flags参数指定接收的选项。
相关推荐


















