欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

socket相关函数

程序员文章站 2022-04-24 22:26:23
...

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