socket相关函数

socket相关函数

socket函数

socket函数返回套接字描述符

int socket(int socket,int type,int protocol)

若成功返回非负描述符,失败返回-1.

family 说明
AF_INET IPv4协议
AF_INET6 IPv6协议
AF_LOCAL Unix域协议
AF_ROUTE 路由套接字
AF_KEY 密钥套接字

type 说明
SOCK_STREAM 字节流套接字
SOCK_DGRAM 数据报套接字
SOCK_SEQPACKET 有序分组套接字
SOCK_RAW 原始套接字

protocol 说明
IPPROTO_TCP TCP传输协议
IPPROTO_UDP UDP传输协议
IPPROTO_SCTP SCTP传输协议

connect函数

TCP客户用connect函数来建立与TCP服务器的连接.

int connect(int sockfd,const struct sockaddr *servaddr,socklen_t addrlen)

若成功返回0,失败返回-1.

bind函数

bind函数把一个本地协议地址赋予一个套接字

int bind(int sockfd,const struct sockaddr *myaddr,socklen_t addrlen)

若成功返回0,失败返回-1.

listen函数

当socket函数创建一个套接字时,它被假设为一个主动套接字,也就是说它是一个将调用connect发起连接的客户套接字,listen函数把一个未连接的套接字转换成一个被动套接字,指示内核应接受指向该套接字的连接请求.

int listen(int sockfd,int backlog)

若成功返回0,失败返回-1.

backlog为相应套接字排队的最大连接个数

accept函数

accept函数由TCP服务器调用,用于从一个已完成连接的队列队头返回下一个已完成连接.

int accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen)

若成功返回非负描述符,失败返回-1.

如果accept成功,那么其返回值是由内核自动生成的一个全新描述符,它的第一个参数为监听套接字描述符,返回值为已连接套接字描述符.一个服务器通常仅仅创建一个监听套接字,它在服务器的生命期内一直存在.内核为每个由服务器进程接受的客户连接创建一个已连接套接字.

原文地址:https://www.cnblogs.com/nickqiao/p/7583336.html