socket函数手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字节操纵函数
IPv4地址转换函数
IPv4、IPv6 通用地址转换函数
TCP套接口函数
并建立连接。调用此函数前,不必调用bind函数,内核会决定源IP并选择一个临时端口作为源端口。
* 参数:
sockfd - 套接口描述字
servaddr - 包含要连接的服务器的IP和端口号的套接口地址结构
addrlen - servaddr套接口地址结构体的大小
* 返回:成功 - 0,失败 - -1
*/
int connect(int sockfd,const struct sockaddr*servaddr,socklen_t addrlen);
/*
* 将一个本地协议地址赋给套接口
* 参数:
sockfd - 套接口描述字
myaddr - 绑定的本地协议地址,对于网际协议,即IP地址和端口,如果IP地址赋值为INADDR_ANY(通配地址wildcard),则由内核去选择IP地址,如果端口赋值为0,则由内核选择一个临时端口
addrlen - 地址结构体的大小
* 返回:成功 - 0,失败 - -1
*/
int bind(int sockfd,const struct sockaddr*myaddr,socklen_t addrlen);
/*
* 指示内核接受一个未连接的套接口上的连接请求
* 参数:
sockfd - 套接口描述字
backlog - 套接口两个队列(完成连接和未完成连接)的排队最大连接
个数,各个操作系统有不同的根据backlog计算排队最大连接个数的算法返回:成功 - 0,失败 - -1
*/
int listen(int sockfd,int backlog);
/*
* 从已完成连接队列对头返回一个已完成连接,如果已完成连接队列为空,那么进程被阻塞(假设套接口为缺省的阻塞方式)
* 参数:
sockfd - 监听套接口描述字
cliaddr - 输出参数,返回已连接的客户端的协议地址,为NULL,则不返回
addrlen - 输出参数,返回套接口地址结构体的大小,为NULL,则不返回
* 返回:成功 - 已连接套接口描述字(由内核自动生成的一个新描述字,代表与所返回客户端的TCP连接),失败 - -1, EINTER - 收到中断
*/
int accept(int sockfd,struct sockaddr*cliaddr,socklen_t
*addrlen);
#include
/*
* 关闭套接口,并终止TCP连接,如果为并发服务器父进程关闭已连接套接口,会将相应描述字的引用计数减一,如果计数不为0,将不会发送FIN * 参数:sockfd - 套接口描述字
* 返回:成功 - 0,失败 - -1
*/
int close(int sockfd);
获得与套接口关联的协议地址
#include
/*
* 获得与套接口关联的本地协议地址
* 参数:
sockfd - 套接口描述字
localaddr - 输出参数,返回与套接口关联的本地协议地址
addrlen - 输出参数,返回套接字地址结构体的大小
* 返回:成功 - 0,失败 - -1
*/
int getsockname(int sockfd,struct sockaddr*localaddr,socklen_t *addrlen);
/*
* 获得与套接口关联的远端协议地址
* 参数:
sockfd - 套接口描述字
peeraddr - 输出参数,返回与套接口关联的远端协议地址
addrlen - 输出参数,返回套接字地址结构体的大小
* 返回:成功 - 0,失败 - -1
*/
int getpeername(int sockfd,struct sockaddr*peeraddr,socklen_t *addrlen);
I/O 复用函数
发送FIN函数
套接口选项函数
注:标志表明了该选项是否为启用或禁止类型,0 - 禁止,非0 - 启用
套接字控制操作
UDP套接口函数