Linux网络编程|socket编程

socket编程

1. 函数说明

socket编程有以下几种基本函数:

  • socket():用于创建套接字,同时指定协议和类型
  • bind():将保存在相应地址结构中的地址信息与套接字进行绑定。主要用于服务器端,客户端创建的套接字可以不绑定地址
  • listen():在服务器端建立套接字并绑定地址后,将套接字设置成监听模式(被动模式),准备接收客户端的连接请求
  • accept():等待并接收客户端的连接请求。建立好TCP连接后,该函数将返回一个新的已连接套接字
  • connect():客户端通过该函数向服务器端的监听套接字发送连接请求
  • send()和recv():通常用于TCP通讯中的发送和接收数据,也可用在UDP中
  • sendto()和recvfrom():通常用于UDP通讯中的发送和接收数据

2. 函数原型

socket()函数

/*****socket()*****/
函数原型:int socket(int family, int type, int protocol)
传 入 值:family 协议族
         -->AF_INET:IPv4协议
         -->AF_INET6:IPv6协议
         -->AF_LOCAL:UNIX域协议
         -->AF_ROUTE:路由套接字
         -->AF_KEY:密钥套接字
		 type 套接字类型
		 -->SOCK_STREAM 流式套接字
		 -->SOCK_DGRAM 数据报套接字
		 -->SOCK_RAW 原始套接字
		 protocol 0(原始套接字除外)
返 回 值:成功返回非负套接字描述符;失败返回-1

bind()函数

/*****bind()*****/
函数原型:int bind(int sockfd, struct sockaddr *my_addr, int addrlen)
传 入 值:sockfd 套接字描述符
		 my_addr 绑定的地址
		 addrlen 地址长度
返 回 值:成功返回0;失败返回-1

listen()函数

/*****listen()*****/
函数原型:int listen(int sockfd, int backlog)
传 入 值:sockfd 套接字描述符
		 backlog 请求队列中允许的最大请求数,大多数系统默认值为5
返 回 值:成功返回0;失败返回-1

accept()函数

/*****accept()*****/
函数原型:int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
传 入 值:sockfd 套接字描述符
		 addr 用于保存客户端地址
		 addrlen 地址长度
返 回 值:成功返回建立好连接的套接字描述符;失败返回-1

connect()函数

/*****connect()*****/
函数原型:int connect(int sockfd, struct sockaddr *serv_addr, int addrlen)
传 入 值:sockfd 套接字描述符
		 serv_addr 服务器端地址
		 addrlen 地址长度
返 回 值:成功返回0;失败返回-1

send()和recv()函数

/*****send()*****/
函数原型:int send(int sockfd, const void *buf, int len, int flags)
传 入 值:sockfd 套接字描述符
		 buf 发送缓冲区的地址
		 len 发送数据的长度
		 flags 一般为0
返 回 值:成功返回实际发送的字节数;失败返回-1

/*****recv()*****/
函数原型:int recv(int sockfd, const void *buf, int len, unsigned int flags)
传 入 值:sockfd 套接字描述符
		 buf 存放接收数据的缓冲区
		 len 接收数据的长度
		 flags 一般为0
返 回 值:成功返回实际接收到的字节数;失败返回-1

sendto()和recvfrom()函数

/*****sendto()*****/
函数原型:int sendto(int sockfd, const void *buf, int len, unsigned int flags, const struct sockaddr *to, int tolen)
传 入 值:sockfd 套接字描述符
		 buf 发送缓冲区的地址
		 len 发送数据的长度
		 flags 一般为0
		 to 接收方套接字的IP地址和端口号
		 tolen 地址长度
返 回 值:成功返回实际发送的字节数;失败返回-1

/*****recvfrom()*****/
函数原型:int recvfrom(int sockfd, const void *buf, int len, unsigned int flags, const struct sockaddr *from, int fromlen)
传 入 值:sockfd 套接字描述符
		 buf 存放接收数据的缓冲区
		 len 接收数据的长度
		 flags 一般为0
		 from 发送方的IP地址和端口号信息
		 fromlen 地址长度
返 回 值:成功返回实际接收到的字节数;失败返回-1

猜你喜欢

转载自blog.csdn.net/Chuangke_Andy/article/details/108422965