Unix网络编程
FinalFantacy~
这个作者很懒,什么都没留下…
展开
-
Unix网络编程 gethostbyname函数
gethostbyname函数 : 是将主机名转换成对应的IPv4地址;函数原型:struct hostent *gethostbyname(const char *hostname) //返回: 成功返回一个非空指针,否则返回NULL并设置errno的值返回:>>>调用成功,返回一个指向hostent结构的指针,该结构含有所查找主机原创 2014-11-11 14:57:03 · 1159 阅读 · 0 评论 -
Unix 网络编程 dup和dup2函数
dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的原形如下:#include int dup( int oldfd );int dup2( int oldfd, int targetfd );dup()函数:利用函数dup,我们可以复制一个描述符。传给该函数一个既有的描述符原创 2014-11-17 19:33:30 · 1216 阅读 · 0 评论 -
Unix网络编程 高级IO套接字设置超时
我们知道,对于一个套接字的读写(read/write)操作默认是阻塞的,如果当前套接字还不可读/写,那么这个操作会一直阻塞下去,这样对于一个需要高性能的服务器来说,是不能接受的。所以,我们可以在进行读写操作的时候可以指定超时值,这样就读写操作就不至于一直阻塞下去。在涉及套接字的I/O操作上设置超时的方法有三种: 1:调用alarm,它在指定的超时期满时产生SIGALRM信号。原创 2014-11-18 13:20:46 · 1471 阅读 · 0 评论 -
Socket进程处理被中断的系统调用及Accept函数返回EINTR错误处理
我们用慢系统调用来描述那些可能永远堵塞的系统调用(函数调用),如:accept,read等。永远堵塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。例如,如果没有客户连接到服务器上,则服务器对accept的调用就没有返回保证。类似的,如果客户从未发送过一行要求服务器回射的文本,则服务器对read的调用将永不返回。其他慢系统调用的例子是对管道和终端设备的读写。有一个例外,就是磁盘原创 2014-11-02 22:51:34 · 1995 阅读 · 0 评论 -
Select函数文件描述符集的准备条件
网络编程中,我们经常讨论等待某个描述符准备好I/O(读/写)或者等待其上发生一个待处理的异常条件。尽管可读性和可写性对于普通文件这样的描述符显而易见,然而对于引起诸如select返回套接字“就绪”的条件我们必须讨论的更明确些。套接字Select函数原型:#include #include int select(int maxfdp1, fd_set *readset, fd_set原创 2014-11-05 11:55:56 · 1669 阅读 · 0 评论 -
Unix 网络编程 select 与 epool 函数的区别
epool与select的区别:select在一个进程中打开的最大fd是有限制的,由FD_SETSIZE设置,默认值是2048。不过 epoll则没有这个限制,它所支持的fd上限是最大可以打开文件的数目,这个数字一般远大于2048,一般来说内存越大,fd上限越大,1G内存都能达到大约10w左右。select的轮询机制是系统会去查找每个fd是否数据已准备好,当fd很多的时候,效率当然就直原创 2014-12-01 20:16:58 · 1342 阅读 · 0 评论