目录
建立连接:listen()、accept()与TCP三次握手
一、C语言中<sys/socket.h>库的概览
<sys/socket.h>头文件包含的主要函数、数据类型及常量
<sys/socket.h>是C语言网络编程中的核心头文件,它定义了创建、管理、关闭套接字所需的基本函数、数据类型和常量,为程序员提供了操作套接字的标准化接口。以下是该头文件中包含的主要元素:
1. 数据类型
-
socklen_t:一种无符号整型,用于表示与套接字相关的参数(如地址长度)的大小,确保跨平台兼容性。
-
sockaddr、sockaddr_in、sockaddr_in6等结构体:用于存储网络地址信息,如IP地址、端口号等。
sockaddr是通用套接字地址结构,而sockaddr_in和sockaddr_in6分别用于IPv4和IPv6地址的具体表示。
2. 常量
-
AF_INET、AF_INET6:地址族常量,分别标识IPv4和IPv6协议。
-
SOCK_STREAM、SOCK_DGRAM、SOCK_RAW等:套接字类型常量,分别对应TCP(面向连接的流套接字)、UDP(无连接的数据报套接字)和其他原始套接字类型。
-
SOL_SOCKET、IPPROTO_TCP、IPPROTO_UDP等:用于设置套接字选项时指定级别(level)的常量,如针对套接字本身的选项、TCP或UDP协议级别的选项。
-
其他与错误代码、标志位、选项值等相关的常量,如
EADDRINUSE、SO_REUSEADDR等。
3. 函数
-
socket():创建一个新的套接字,返回一个描述符,用于后续的套接字操作。需要指定地址族、套接字类型和协议。
-
bind():将一个套接字与本地地址(IP地址和端口号)绑定,使得该套接字可以接收发往该地址的连接请求或数据报。
-
listen():使一个TCP套接字进入被动监听状态,等待客户端的连接请求。需要指定同时可接纳的最大连接请求队列长度。
-
accept():在监听套接字上接受一个连接请求,返回一个新的已连接套接字描述符,用于与客户端进行数据交换。
-
connect():主动发起一个TCP连接,将一个套接字与远程地址(IP地址和端口号)建立连接。
-
send()、recv():在已连接的套接字上发送和接收数据。对于TCP,数据是按序、可靠的;对于UDP,数据是独立的数据报,可能丢失、重复或乱序。
-
sendto()、recvfrom():在数据报套接字上发送和接收数据,并可以指定或获取数据的来源/目标地址。
-
close():关闭一个套接字,释放与其相关的系统资源。
-
setsockopt()、getsockopt():设置和获取套接字的选项,如缓冲区大小、超时时间、是否复用地址等。
-
shutdown():关闭套接字的读、写或读写方向,用于控制连接的半关闭或完全关闭。

&spm=1001.2101.3001.5002&articleId=137374040&d=1&t=3&u=09063ab42c304441a413bc57cddebfe0)
1667

被折叠的 条评论
为什么被折叠?



