基于 C 的
1.socket 函数
int socket(int domain,int type,int protocol)
描述:用于创建通信的套接字,并返回该套接字的文件描述符。
domain:网络程序所在主机采用的通信协议。(AF_UNIX、AF_INET)
type:指定套接字类型。
protocol:指定套接字所使用的通信协议。
2.bind 函数
int bind(int sockfd,const struct sockaddr *my_addr,socklen_t addrlen)
描述:用于将套接字和指定端口进行连接。成功返回 0 ,失败返回 -1,并设置 errno 变量。
sockfd:调用 socket 函数后返回的文件描述符
addrlen:sockaddr 结构的长度
my_addr:执行 sockaddr 结构体的指针。
3.listen 函数
int listen(int sockfd, int backlog)
描述:实现服务器等待客户端请求的功能。成功返回 0 ,失败返回 -1,并设置 erron 变量。
sockfd:经过 bind 操作的文件描述符。
backlog:设置请求队列的最大长度。
4.accept 函数
int accept(int sockfd,struct sockaddr *addr,socklent_t *addrlen)
描述:该函数处于监听状态服务器,在获取客户端连接请求后,会将其放置在等待队列中,当系统空闲时,接收客户机的连接请求。
没有客户机请求时,阻塞等待。函数调用成功后,返回最后的服务器端文件描述符,失败返回 -1 ,设置 errno 变量。
sockfd:经过 listen 后的文件描述符。
addr:指向客户端结构体 sockaddr 的指针。
addelen:addr 指向的内存空间长度。
5.connect 函数
int connect(int sockfd,const struct sockaddr *serv_addr,socklent_t addrlen)
描述:用于客户端向服务器发送连接请求。
sockfd:客户端 socket 返回的文件描述符。
serv_addr:存储服务器端的连接信息。
addrlen:serv_addr的长度。
6.write 函数
ssize_t write(int fd,const void*buf,size_t nbytes)
描述:用于服务器和客户端建立连接口,将 buf 中的 nbytes 字节的内容写入文件描述符。
成功后返回写入字节数,失败返回 -1 ,设置 errno变量。
fd:socket 返回的文件描述符。
buf:只想要进行传输内容的指针。
nbytes:要传输内容的大小。
7.read 函数
ssize_t read(int fd,void * buf,size_t nbytes)
描述:从文件描述符 fd 中读取内容。成功返回读取的字节数,失败返回 -1 ,设置 errno 变量。
8.send 函数
ssize_t send(int s,const void*buf,size_t len,int flags)
描述:将信息发送到指定套接字的文件描述符中。成功返回实际发送的字节数,失败返回 -1 .并设置 errno 变量。
s:要发送信息的文件描述符。
buf:指向要发送内容的指针。
len:要发送数据的长度。
flags:为 0 时,与 write 功能相同。
9.recv 函数
ssize_t recv(int s,const void*buf,size_t len,int flags)
描述:从指定的套接字中获取信息。成功返回实际发送的字节数,失败返回 -1 .并设置 errno 变量。
s:要读取内容的套接字文件描述符。
buf:指向要保存数据缓冲区的指针。
len:该缓存的最大长度。
flags:和 send 函数一致。