
Unpv
一支兰州
这个作者很懒,什么都没留下…
展开
-
unp.h怎么使用
要开始接触网络编程,用的是大名鼎鼎的Unix Network Programming这本书,第一个例子就遇到困难了,unp.h没有,到谷歌上搜索了一下,找到了一些方法。先下载unpv13e.tar.gz, 1.解压下载的unpv13e.tar.gz文件 tar -zxvf unpv13e.tar.gz 2。终端中进入unpv13e目录(需要给configure文件增加x权限)转载 2015-03-04 15:35:11 · 3309 阅读 · 0 评论 -
linux惊群问题
1. 结论 对于惊群的资料,网上特别多,良莠不齐,也不全面。看的时候,有的资料说,惊群已经解决了,有的资料说,惊群还没解决。。 哪个才是对的?! 一怒之下,在研究各种公开资料的基础上,特意查对了linux源码,总结了此文。希望对有需要的人略有帮助,希望各位大神轻拍,如有错漏,不吝指教,感激不尽。(814329735@qq.com) 先说结论吧: 1. Linux多进程acc转载 2016-03-03 21:56:54 · 1120 阅读 · 0 评论 -
epoll的读写方式
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unavailable 总结: 这个错误表示资源暂转载 2015-07-12 10:31:11 · 1341 阅读 · 1 评论 -
epoll+时间堆定时器
在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。如果采用Linux的SIGALARM信号实现,则会带来较大的系统开销,且不便于管理。 本文在应用层实现了一个基于时间堆的高性能定时器,同时考虑到定时的粒度问题,由于通过alarm系统调用设置的SIGALARM信号只能以秒为单位触发,因此需要采用其它手段实现更细粒度的定时操作,当然,这里不考虑转载 2015-06-02 22:25:14 · 1040 阅读 · 0 评论 -
网络编程中最小堆实现的定时器
在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。如果采用Linux的SIGALARM信号实现,则会带来较大的系统开销,且不便于管理。 本文在应用层实现了一个基于时间堆的高性能定时器,同时考虑到定时的粒度问题,由于通过alarm系统调用设置的SIGALARM信号只能以秒为单位触发,因此需要采用其它手段实现更细粒度的定时操作,当然,这里不考虑转载 2015-05-13 16:37:39 · 4505 阅读 · 1 评论 -
EPOLLLT——水平触发 EPOLLET——边缘触发区别
EPOLLLT——水平触发 EPOLLET——边缘触发 epoll有EPOLLLT和EPOLLET两种触发模式,LT是默认的模式,ET是“高速”模式。LT模式下,只要这个fd还有数据可读,每次 epoll_wait都会返回它的事件,提醒用户程序去操作,而在ET(边缘触发)模式中,它只会提示一次,直到下次再有数据流入之前都不会再提示了,无 论fd中是否还有数据可读。所以在ET模式下,read转载 2015-05-12 09:03:21 · 1869 阅读 · 0 评论 -
非阻塞listenfd
先说一下为什么要使用非阻塞的accept.如果我们使用select或者epoll对listenfd进行监控,正常情况下,三次握手完成之后,服务器端维护了一个队列来保存这些连接,select或者epoll会触发listenfd的可读事件来待程序员调用accept返回这个连接的描述字.但是有一些特殊的情况在本博客中的TCP连接中的close和shutdown一文中提到了一种情况.调用close函数,并转载 2015-05-11 21:06:32 · 2584 阅读 · 0 评论 -
send函数理解
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。 客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接字描述符; 第二个参数指明转载 2015-04-27 17:02:49 · 721 阅读 · 0 评论 -
unpv 卷一卷二源码编译错误解决
下载: 卷一:http://www.kohala.com/start/unpv12e/unpv12e.tar.gz http://www.kohala.com/start/ 卷一 解决错误: #cd unpv12e #cd lib #make gcc -g -O2 -D_REENTRANT -Wall -c -o connect_nonb.o connect_nonb.c转载 2015-03-18 11:43:05 · 823 阅读 · 0 评论 -
探讨read的返回值的三种情况
作者:gfree.wind@gmail.com 博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。 ===================转载 2016-03-17 21:33:41 · 4930 阅读 · 0 评论