socket基本函数 (一)

1. SOCKET socket(int af,int type,int protocol)

    socket函数用来创建指定类型的套接字,并为套接字分配所需的系统资源.

    af用来指定使用的地址簇;

    type用来指定创建的套接字类型,流式套接字为SOCK_STREAM,数据报套接字为SOCK_DGRAM,原始套接字为SOCK_RAW;

    protocol依赖第二个参数,用来指定使用的具体协议,根据地址格式和socket类型自动选择,IP协议为IPPROTO_IP,TCP协议为IPPROTO_TCP,UDP协议为IPPROTO_UDP,通常设为IPPROTO_IP.

   套接字描述符是一个整数类型的值,每个进程空间中都有一个套接字描述符表,该表存放套接字描述符和套接字数据结构的对应关系.

    函数执行成功返回套接字描述符,失败返回INVALID_SOCKET错误.

 

2. SOCKET accept(SOCKET s,struct sockaddr FAR* addr,int FAR* addrlen);

    accept函数用来接受客户端的连接建立请求。

    s用来指定服务器接受请求的套接字.该套接字已通过listen函数设置为倾听状态;

    addr用来指定接受请求的套接字地址(保存客户端IP地址和端口);

    addrlen用来指定套接字长度.

    函数执行成功返回新创建的套接字描述符(与客户端通信使用),失败返回INVALID_SOCKET.

 

3. int bind(SOCKET s,const struct sockaddr* name,int namelen);

    bind函数用来将套接字与本地地址相互绑定.

    函数执行成功后返回0,失败后返回-1.

 

4. int connect(SOCKET s,const struct  sockaddr FAR* name,int namelen);

    connect函数用来请求与服务器建立连接,这个函数专为流式套接字设计,用于面向连接的TCP类型的服务.

    函数执行成功后返回0,失败后返回SOCKET_ERROR.

 

5. closesocket(SOCKET s);

    closesocket函数关闭一个存在的套接字,操作系统会关闭套接字,释放相应资源.

    函数执行成功后返回0,失败后返回SOCKET_ERROR.

 

6. listen(SOCKET s,int backlog);

    listen函数来监听端口上的连接建立请求,使流式套接字处于监听状态.这个函数专为流式套接字设计,用于面向连接的TCP类型的服务.

    s用来指定服务器端要监听的套接字;backlog用来指定流式套接字要维护的客户连接请求队列的最大长度,如果backlog设置为SOMAXCONN,下层的服务提供者会将客户连接请求队列设置为最大的合理值.

    函数执行成功后返回0,失败后返回SOCKET_ERROR.

posted on 2012-02-26 21:30  kangbry  阅读(562)  评论(0编辑  收藏  举报

导航