标签:
1、编程模型函数化
函数学习
1)创建套接字
函数名:socket
函数原型:Int socket(int domain,int type,int protocol);
函数功能:创建套接字
所属头文件:<sys/types.h>、<sys/socket.h>
返回值:成功:返回对应于新套接字的文件描述符或者套接字的id,失败:返回错误编码
参数说明:domain:有一系列可取值;type:创建的套接字协议的类型;protocal:协议
2)绑定套接字
函数名:bind
函数原型:Int Bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen);
函数功能:绑定套接字:将ip地址与套接字相绑定
所属头文件:<sys/types.h>、<sys/socket.h>
返回值:成功:返回对应于新套接字的文件描述符或者套接字的id;失败:返回错误编码
参数说明:sockfd:要绑定套接字的fd;addr:将套接字与那个地址进行绑定;addrlen:地址长度
网络字节序:
3)监听
listen
作用:1、用来指明服务器已经做好了准备,可以用来接收客户机的请求了。2、用来设置服务器可以接受多少个客户机的连接请求
参数:sockfd与之关联的套接字的fd。Backlog:客户机的数目,即允许多少个客户机来进行连接。
成功:返回0,失败:返回-1
4)等待连接
Accept
作用:等待客户机来进行连接,如果无客户机来连接,则导致服务器在这里阻塞。
参数:sockfd:创建的套接字的fd。Addr:如果有客户机来进行连接,那么通过本地址来返回客户机的地址。Len:接收到客户机的地址的长度
成功:返回新的套接字的描述符。后面在发送和接收数据时用这个新的fd来进行操作。
5)发送数据
函数名:Send
作用:发送数据
参数:sockfd:新的套接字的fd,buf:要发送数据的地址,nbytes:要发送数据的长度,flags:标志
6)接收数据
Recv
参数:sockfd:新的套接字的fd,buf:要存数据的地址,nbytes:希望接收多大量的数据,flags:标志
7)关闭连接
Close
8)连接服务器
Connect
参数:新创建的套接字的fd,addr:保存的服务器的地址,len:服务器地址的长度
成功:返回0
失败:返回-1
标签:
原文地址:http://www.cnblogs.com/gary-guo/p/5583552.html