1.socket
函数原型:int socket(int domain,int type,int protocol)
函数作用:建立一个新的socket套接字
函数参数:domain:建立何种地址类型;AF_INET,IPV4的 网络协议
AF_INET6,IPV6的网络协议
type:SOCK_STREAM; TCP,面向数据流的
SOCK_DGRAM; UDP,使用不连续不可信赖的数据报
SOCK_RAW; 提供原始网络协议
protocol:传输协议编号,设为0即可
返回值:成功返回socket套接字描述符,失败返回-1
头文件:#include<sys/types.h>
2.bind
函数作用:绑定IP地址
函数原型:int bind(int socket,struct sockaddr *my_addr,int addlen)
函数参数:socket:socket套接字描述符
my_addr:主机地址
addlen:sockaddr地址长度
头文件:#include<sys/types.h>
#include <socket.h>
关于struct sockaddr my_addr结构体:
函数作用:建立socket连接的,通常客户端连接服务器使用
函数原型:int connect(int sockfd,struct sockaddr * serv_addr,int addlen)
函数参数:serv_addr:表示要连接的服务器IP地址
addlen:struct socket 的长度
返回值:成功0,出错-1
4.listen
函数作用:聆听网络,等待连接
函数原型:int listen(int sockfd,int backlog)
函数参数:backlog:允许接入的客户端数目
注意:listen并没有连线,只是设置socket的设置格式,真正连接的是accept
返回值:成功0,出错-1
5.accept
函数作用:接受网络连接,客户端连接,三次握手在这个地方
函数原型:int accept(int sockfd,struct sockaddr *addr,int *addlen)
函数参数:addr:连接成功,填充远端客户端的地址
addlen:struct sockaddr的长度
返回值:成功返回新的sock_fd,失败-1
6.send
函数作用:经过socket传送数据,向对方发送数据
函数原型:int send(int sock_fd,const void *msg,int len,unsigned int flags)
函数参数:sock_fd:accept建立起来的socket连接描述符,连接远方的IP地址
msg:发送的数据
len:数据长度
flags:设为0
返回值:成功返回实际传送出去的字节数,出错-1
7.recv
函数作用:经过socket接收数据
函数原型:int recv(int sock_fd,void *buf,int len,unsigned int flags)
函数参数:sock_fd:accept建立起来的socket连接描述符,连接远方的IP地址
buf:存放地在
len:接收数据最大长度
flags:设为0
返回值:成功返回实际接收出去的字节数,出错-1