网络函数介绍

网络函数

百度资料:

http://www.cnblogs.com/duzouzhe/archive/2009/06/19/1506699.html

http://blog.csdn.net/yirexiao/article/details/5334945

一.int socket(int domain, int type,int protocol)

   1.domain:说明我们网络程序所在的主机采用的通讯协族(AF_UNIX和AF_INET等).
AF_UNIX只能够用于单一的Unix 系统进程间通信,
而AF_INET是针对Internet的,因而可以允许在远程
主机之间通信(当我们 man socket时发现 domain可选项是 PF_*而不是AF_*,因为glibc是posix的实现所以用PF代替了AF,
不过我们都可以使用的).

2.type:我们网络程序所采用的通讯协议(SOCK_STREAM,SOCK_DGRAM等)
SOCK_STREAM表明我们用的是TCP 协议,这样会提供按顺序的,可靠,双向,面向连接的比特流.
SOCK_DGRAM 表明我们用的是UDP协议,这样只会提供定长的,不可靠,无连接的通信.

  1. protocol:故名思意,就是指协议族,常用的有,IPPROTO_TCP,IPPTOTO_UDP由于我们指定了type,所以这个地方我们一般只要用0来代替就可以了 socket为网络通讯做基本的准备.

4. 成功时返回文件描述符,失败时返回-1,看errno可知道出错的详细情况.

二.int connect(int sockfd, struct sockaddr * serv_addr,int addrlen)

1.sockfd:socket返回的文件描述符.

2.serv_addr:储存了服务器端的连接信息.其中sin_add是服务端的地址

3.addrlen:serv_addr的长度

4.connect函数是客户端用来同服务端连接的.成功时返回0,sockfd是同服务端通讯的文件描述符 失败时返回-1.

三.int getaddrinfo( const char *hostname, const char *service, const struct addrinfo *hints, struct addrinfo **result );

资料: http://www.cnblogs.com/cxz2009/archive/2010/11/19/1881693.html

四.int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen)

   资料http://blog.csdn.net/noif1655/article/details/11749963

http://blog.csdn.net/yahohi/article/details/6717500

五.int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);

資料:http://blog.chinaunix.net/uid-20384806-id-1954291.html

原文地址:https://www.cnblogs.com/li-mei/p/4798364.html