1、socket函数
函数的作用:建立一个新的socket套接字
函数的原型:int socket(int domain,int type,int protocol)
参数:domain:表示使用何种的地址类型;AF_INET:IPV4;AF_INET6:IPV6
type:SOCK_STREAM:TCP,面向数据流的;SOCK_DGRAM:UDP,使用不连续不可信赖的数据包连接
protocol:传输协议编号,设为0即可
头文件:#include<sys/socket.h>
返回值:成功:返回socket套接字描述符;出错:-1;
2、bind函数
函数的作用:绑定IP地址
函数的原型:int bind(int sockfd,struct sockaddr *my_addr,int addrlen)
参数:sockfd:socket套接字描述符
my_addr:主机地址
addrlen:sockaddr的地址长度
其中struct sockaddr_in
{
unsigned short int sin_family;
uint16_t sin_port;//端口号
struct in_addr sin_addr;//IP地址
unsigned char sin_zero[8];//未使用
};
struct in_addr
{
uint32_t s_addr;
};
头文件:#include<sys/types.h>
#include<sys/socket.h>
返回值:成功:0;出错:-1
3、connect函数
函数的作用:建立socket连接,通常客户端连接服务器使用
函数的原型:int connect(int sockfd,struct sockaddr *serv_addr,int addrlen)
参数:serv_addr:表示要连接的服务器的IP地址
addrlen:struct sockaddr的长度
返回值:成功:0;出错:-1
4、listen函数
函数的作用:聆听网络,等待连接
函数的原型:int listen(int sockfd,int backlog)
参数:sockfd:描述符
backlog:允许接入的客户端的数目
返回值:成功:0;出错:-1;
注意:listen并没有连线,只是设置socket的listen模式而已,真正连接的是accept
5、accept函数
函数的作用:接收网络连接,客户端连接,三次握手在这个地方
函数的原型:int accept(int sockfd,struct sockaddr *addr,int *addrlen)
参数:addr:连接成功,填充远端客户机的地址
addrlen:struct sockaddr的长度
6、send函数
函数的作用:经过socket传送数据;向对方发送数据
函数的原型:int send(int sock_fd,void *msg,int len,int *addrlen)
参数:addr:连接成功,填充远端客户机的地址
返回值:成功:返回新的sock_fd;出错:-1
7、recv函数
函数的作用:经过socket接收数据
函数的原型:int recv(int sock_fd,void *buf,int len,unsigned int flags)
函数的参数:sock_fd:accept以后的socket套接字描述符
buf:存放地址
len:接收数据的最大长度
返回值:成功:接收的字节数;出错:-1
等