Socket编程接口
介绍
Socket接口是一套规范的TCP/IP协议栈的调用接口,它定义了一组函数以及一套机制,用于在网络上发送和接收数据。各个操作系统的协议栈实现各有不同,但只要实现了这套接口规范,那么是可以很方面进行移植的。
接口
创建与关闭
socket()
: 创建一个新的套接字close()
: 关闭一个套接字资源shutdown()
: 用于关闭Socket连接的传输,可以选择关闭读、写或读写操作,但保留连接
设置
setsockopt()
: 设置套接字选项,如超时时间、缓冲区大小等getsockopt()
: 获取套接字选项inet_pton()
:用于将一个点分十进制的IP地址转换为二进制格式的IP地址。inet_ntop()
:用于将一个二进制格式的IP地址转换为点分十进制格式的IP地址bind()
: 将套接字与一个地址(通常是主机地址和端口号的组合)绑定getsockname()
: 获取与套接字绑定的地址getpeername()
: 获取与套接字连接的远程地址
连接与监听
connect()
: 试图连接到指定地址的远程套接字listen()
: 使套接字开始监听连接请求accept()
: 等待并接受一个连接请求
数据收发
send()
: 发送数据recv()
: 接收数据sendto()
: 发送数据到指定地址recvfrom()
: 从指定地址接收数据sendmsg()
: 发送带辅助数据的消息recvmsg()
: 接收带辅助数据的消息
域名解析
getaddrinfo()
: 将主机名和服务名解析为地址信息freeaddrinfo()
: 释放通过getaddrinfo()
获取的地址信息getnameinfo()
: 将地址信息转换为主机名和服务名
其它
htons()
:将主机字节序的16位整数转换为网络字节序ntohs()
:将网络字节序的16位整数转换为主机字节序htonl()
:将主机字节序的32位整数转换为网络字节序ntohl()
:将网络字节序的32位整数转换为主机字节序