![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unix网络编程
文章平均质量分 84
nginux
阿里巴巴
展开
-
非阻塞IO
套接口缺省是阻塞的。这一点意味着当发出一个不能立即完成的套接口调用时,其进程将被投入睡眠,等待响应操作完成。1.输入操作:read、readv、recvfrom。如果某个进程对一个阻塞的TCP套接口调用这些函数之一,而且该套接口的接收缓冲区中没有数据可读,该进程将投入睡眠,直到一些数据到达。既然TCP是字节流协议,该进程的唤醒就只需到达一些数据:这些数据可能是单个字节,也可以是一个完整的T原创 2014-04-22 20:39:17 · 993 阅读 · 0 评论 -
connect和bind
考虑以下情形:我们使用UDP写一个echo程序,kehu原创 2014-04-23 09:26:35 · 2104 阅读 · 0 评论 -
tcp/udp套接口缓冲区
概念: MTU:链路层上数据帧中数据的最大值,即IP数据报的整个值。详见TCP/IP第7页。数据进入协议栈的封装过程。 MSS:TCP报文段中数据的最大值---MSS选项只能出现在SYN报文中。TCP输出:每个TCP套接口都有一个发送缓冲区,我们可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小。当应用程序调用write时,内核从应用进程的缓冲区中原创 2014-04-22 22:33:46 · 3683 阅读 · 0 评论 -
epoll小结
1.select和poll模型为什么会慢。 假如有100w用户和一个进程保持tcp连接,而每一个时刻只有几十个活跃的连接,也就是说,每一个时刻进程只需要处理这100w连接中的一小部分。那么如何高效的处理?进程是否在每次询问操作系统收集有事件发生的tcp连接时,把这100w个连接告诉操作系统,然后由操作系统来找出发生的连接?select和poll正是这么做的。 这里有个明显的问题原创 2014-04-23 10:33:30 · 1111 阅读 · 0 评论 -
win7在64位系统下编译openssl
以前在笔记本上配置过openssl-0.9.8g版本,今天在公司的台式机上配置死活没配置成功,机器的系统是win7,64位,编译openssl-1.0.1e出现各种莫名的错误,最后无意中编译了1.0.0.a版本编译成功了。如果出现ml找不到的时候,直接在vc10.0/bin下拷贝就好。参考文章:http://blog.chinaunix.net/uid-20479991-id-216269原创 2014-07-23 19:14:22 · 1440 阅读 · 0 评论