发布时间:2014-10-09 14:51:33
int poll(struct pollfd *fdarray, unsigned long nfds, int timeout);返回值:若有就绪描述符则为其数目,若超时则为0,若出错则为-1.第一个参数是指向一个结构数组第一个元素的指针。struct pollfd {int fd; /*待测试的描述符fd*/short events; &n.........【阅读全文】
发布时间:2014-10-09 10:47:04
#include #include int select(int maxfdpl,fd_set *readset,fd_set *writeset,fd_set *exceptset, const struct timeval *timeout)struct timeval {long tv_sec;long tv_usec;};1)timeout == NULL,仅在有一个描述符准备好I/0的时候才返回,不然永久等待下去2)timeout设置为一段时间.........【阅读全文】
发布时间:2014-10-08 17:58:59
笔者在学习unix网络编程时,第一个回显程序,服务器使用的是先accept一个链接,然后fork一个子进程,父进程关闭链接socket,继续使用监听socket,而子进程关闭监听socket,使用链接socket。在学习select后,笔者改造原先代码的时候,先select到监听套接字,然后将链接套接字加入到fd_set里面继续select,当链接socket中有.........【阅读全文】
发布时间:2014-09-28 16:43:06
客户端与服务器端建立好TCP连接,如果此时服务器端关闭对应的socket,从而发送FIN报文给客户端,但是客户端仍然在对应的socket上发送数据,此时当服务器收到客户端的第一个write时,服务器发送RST报文告诉客户端自己的socket已经关闭,如果此时客户端仍然write数据给服务器,则客户端底层会触发发送SIGPIPE信号,该信号默认.........【阅读全文】