socket
文章平均质量分 61
drusehan
这个作者很懒,什么都没留下…
展开
-
thttpd.Timer.c分析
分析一下 TImer.c的结构 Hash:对时间值进行Hash.双向链表:用于Hash后的查找。free_timers的应用:开出内存后不释放,而是用双向free_timers把它存起来,以备下回调用的时候直接使用。此三点我认为是 Timer.c的精华所在。原创 2012-06-15 16:12:38 · 480 阅读 · 0 评论 -
thttpd源码
以下代码是添加和删除fd的代码,实现的很巧妙。static voidselect_add_fd( int fd, int rw ) { if ( nselect_fds >= nfiles ) { syslog( LOG_ERR, "too many fds in select_add_fd!" ); return; }原创 2012-06-07 08:58:50 · 586 阅读 · 0 评论 -
select server 实现
以下程序代码是select非阻塞通信模式。(服务端代码,监听端口8885)声明:1.以下结构的添加,删除fd,用了两个数组实现,结构非常巧妙。参考thttpd的实现源码。#include #include #include #include #include #include #include #include #include原创 2012-06-16 14:28:13 · 976 阅读 · 0 评论 -
poll服务端程序例子
以下程序是poll服务端程序。注意:如果是自己判断状态会有问题,现在还不清楚是哪里的问题。#include #include #include #include #include #include #include #include #include #include #include #include原创 2012-06-17 11:57:15 · 550 阅读 · 0 评论 -
关于connect前设置非阻塞的问题
以前一直使用的网络通讯的函数都是工作在阻塞模式。在看connect实现源码时,突然想到tcp/ip的三次握手在内核如何实现的,尤其是在非阻塞模式下式,涉及到等待对端回送ack包,而本端又要立即返回,想来这种实现肯定是遵循某种规则或是将所有的相关函数组合起来。 查看一些网络通信书籍,可知果然如此。应用编程如果设置为非阻塞模式,则连接时,connect发送SYN包后立即返回-E原创 2010-02-04 15:57:00 · 2488 阅读 · 0 评论