Unix Network Programming
文章平均质量分 66
linquidx
这个作者很懒,什么都没留下…
展开
-
网络编程之同步,阻塞,异步,非阻塞
<br />同步:函数没有执行完不返回,线程被挂起 <br />阻塞:没有收完数据函数不返回,线程也被挂起<br />异步:函数立即返回,通过事件或是信号通知调用者<br />非阻塞:函数立即返回,通过select通知调用者<br />这样看来异步和非阻塞有什么区别呢?<br />异步=非阻塞?<br />同步是在操作系统层面上,阻塞是在套接字上?<br />Reactor是同步 Proactor是异步?<br />回答:<br />同步、异步、阻塞和非阻塞的概念<br /> 在进行网络编程时,我们常常见转载 2010-07-28 16:58:00 · 364 阅读 · 0 评论 -
epoll
<br />epoll的优点支持一个进程打开大数目的socket描述符(FD)<br />select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是2048。对于那些需要支持的上万连接数目的IM服务器来说显然太少了。这时候你一是可以选择修改这个宏然后重新编译内核,不过资料也同时指出这样会带来网络效率的下降,二是可以选择多进程的解决方案(传统的Apache方案),不过虽然linux上面创建进程的代价比较小,但仍旧是不可忽视的,加上进程间数据同步远比转载 2010-09-10 14:47:00 · 436 阅读 · 0 评论 -
TCP连接状态分析
TIME-WAIT转载 2010-09-29 16:56:00 · 1863 阅读 · 1 评论 -
linux内核中管理TCP侦听队列长度参数:somaxconn
在linux中,/proc/sys/net/core/somaxconn这个参数, 看下其解析: 对于一个TCP连接,Server与Client需要通过三次握手来建立网络连接.当三次握手成功后, 我们可以看到端口的状态由LISTEN转变为ESTABLISHED,接着这条链路上就可以开始传送数据了. 每一个处于监听(Listen)状态的端口,都有自己的监听队列.监听队列的长度,与如下两方面有关: - somaxconn参数. - 使用该端口的程序中listen()函数. 1. 关于somax转载 2010-09-29 16:59:00 · 7481 阅读 · 0 评论 -
同步、异步、阻塞、非阻塞 I/O 及 异步I/O实现
<br />同步、异步、阻塞、非阻塞 I/O<br /> <br />第一部分来自:<br />http://blog.csdn.net/historyasamirror/archive/2010/07/31/5778378.aspx<br /> <br />Stevens在文章中一共比较了五种IO Model:<br /> blocking IO<br /> nonblocking IO<br /> IO multiplexing<br /> signal driven IO<br转载 2010-10-11 11:03:00 · 2652 阅读 · 0 评论 -
协议栈开发一般步骤
一,阅读协议栈相关文档二,设计协议栈结构三,编码开发四,测试与维护原创 2010-10-18 11:39:00 · 3685 阅读 · 0 评论