网络函数介绍
网络函数
百度资料:
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协议,这样只会提供定长的,不可靠,无连接的通信.
- 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