【小结】套接字函数

int  WSAStartup(WORD wVersionRequested, LPWSADATA  lpWSAData);  

 

功能是初始化Windows Socket Dll,在Windows下必须使用它。

 

参数:

“wVersionRequested”表示版本,可以是1.1、2.2等;

“lpWSAData”指向WSADATA数据结构的指针。

 

int socket(int family, int type, int protocol);  

功能是建立Socket,返回以后会用到的Socket值。如果错误,返回-1。

 

参数:

 

“int family”参数指定所要使用的通信协议,取以下几个值:AF_UNIX(Unix内部协议)、AF_INET(Internet协议)、AF_NS Xerox(NS协议)、AF_IMPLINK(IMP连接层),在Windows下只能把“AF”设为“AF_INET”;

 

“int type”参数指定套接字的类型,取以下几个值:SOCK_STREAM(流套接字)、SOCK_DGRAM (数据报套接字)、SOCK_RAW(未加工套接字)、SOCK_SEQPACKET(顺序包套接字);

 

“int protocol”参数通常设置为0。

 

int bind(int sockfd, struct sockaddr *my_addr, int addrlen);  

 

功能是把套接字和机器上一定的端口关联起来。

 

参数:

 

“sockfd”是调用socket()返回的套接字值;

 

“my_addr”是指向数据结构struct sockaddr的指针,它保存你的地址,即端口和IP地址信息;

 

“addrlen”设置为sizeof(struct sockaddr)。

 

 int listen(int sockfd, int backlog);  

 

功能是服务端监听一个端口,直到accept()。在发生错误时返回-1。

 

参数:

 

“sockfd”是调用socket()返回的套接字值;

 

“backlog”是允许的连接数目。大多数系统的允许数目是20,也可以设置为5到10。

 

 int connect(int sockfd, struct sockaddr *serv_addr, int addrlen);  

 

功能是客户端连接服务端监听的端口。

 

参数:

 

“sockfd”是调用socket()返回的套接字值;

 

“serv_addr”保存着目的地端口和IP 地址的数据结构struct sockaddr;

 

“addrlen”设置为sizeof(struct sockaddr)。

 

 int accept(int sockfd, void *addr, int *addrlen);  

 

功能是服务端接受客户端的连接请求,并返回一个新的套接字,以后服务端的数据传输就使用这个新的套接字。如果有错误,返回-1。

 

参数:

 

“sockfd”是和listen()中一样的套接字值;

 

“addr”是个指向局部的数据结构sockaddr_in的指针;

 

“addrlen”设置为sizeof(struct sockaddr_in)。

 

int send(int sockfd, const void *msg, int len, int flags);

int recv(int sockfd, void *buf, int len, unsigned int flags);

 

功能是用于流式套接字或数据报套接字的通讯,我们数据的真正传输就由它们完成。

 

参数:

 

“sockfd”是发/收数据的套接字值;

“msg”指向你想发送的数据的指针;

“buf”是指向接收数据存放的地址;

“len”是数据的长度;

“flags”设置为 0。

 

int sendto(int sockfd, const void *msg, int len, unsigned int flags,const struct sockaddr *to, int tolen);

int recvfrom(int sockfd, void *buf, int len, unsigned int flags,  struct sockaddr *from, int *fromlen);

 

功能和send、recv类似,不过是用于无连接数据报套接字的传输。

 

 int closesocket(int sockfd)

 

功能是关闭套接字。

 

参数“sockfd”为要关闭的套接字值。

posted on 2013-06-14 12:17  沙悟净  阅读(139)  评论(0)    收藏  举报