TCP编程模型
UDP编程模型
①socket()创建套接字
②bind()绑定本地地址端口
③connect()建立连接
④listen()监听端口
⑤accept()接收连接
⑥recv(),read(),recvfrom()数据接收
send(),write(),sendto()数据发送
close(),shutdown()关闭套接字
①int socket(int family,int type,int protocol)
参数:
family 协议族 AF_INET,IPV4。 AF_INET6,IPV6
type: SOCK_STREAM: TCP ……………SOCK_DGRAM: UDP
protocol:0
返回值:非负套接字表示成功,返回值为-1表示出错
②int bind(int sockfd,struct sockaddr *myaddr,int addrlen)
参数:sockfd:套接字描述符
my_addr:本地地址
addrlen:地址长度
返回值:成功返回0,失败返回-1
③int listen(int sockfd,int backlog)
参数:backlog:请求的最大数,服务器允许连接的客户端
返回值:成功返回0,失败返回1
④int accept(int sockfd,struct *sockaddr,int *addrlen)
参数:addr:客户端地址(客户端发来的数据包,包含了客户的IP地址)
addrlen:地址长度
返回值:成功返回接收到的非负的套接字(该套接字不是第一次socket产生的套接字,而是accept三次握手后,系统返回的套接字),失败返回-1
⑤int recv(int sockfd,void *buf,int len,unsigned int flags)
参数:sockfd:套接字(accept产生的套接字)
buf:存放数据的缓冲区
len:数据长度
flags:0
返回值:成功返回收到的字节数大小,出错返回-1
⑥int send(int sockfd,const void *msg,int len,int flags)
参数:sockfd(accept建立的套接字)
msg:要发送的信息
len:数据长度
返回值:成功返回实际发送的字节数,失败返回-1
⑦close(fd)
⑧int connect(int sockfd,struct sockaddr *srv,int addrlen)
参数:sockfd:套接字描述符
srv:服务器地址
addrlen:地址长度
返回值:成功返回0,出错返回-1