背景: 使用swoole_server swoole_table实现 //创建swoole_table$table = new swoole_table(1024);$table->column('fd', swoole_table::TYPE_INT);$table->column('from_i ...
分类:
其他好文 时间:
2016-05-20 17:26:53
阅读次数:
1012
公司有台服务器,svn更新代码的时候直接卡死。最后发现是两台服务器网卡的全双工/半双工方式不同导致。root@pts/2#mii-tooleth0
eth0:negotiated100baseTx-FD,linkok
另一台:
root@pts/0#mii-toolbond0
bond0:10Mbit,halfduplex,linkok修改:root@pts/2#ethtool-seth0speed10..
分类:
其他好文 时间:
2016-05-17 20:01:11
阅读次数:
260
1.保护机制 这个就是所谓的堆指针的check。 FD其实就是p->fd BK其实就是p->bk 就是说:p->fd->bk=p p->bk->fd=p 就是做这么一个验证。 过这个验证,需要伪造一个新块才行。 ...
分类:
系统相关 时间:
2016-05-16 01:42:23
阅读次数:
269
一、浮动left元素向左浮动right元素向右浮动none元素不浮动inherit从父级继承浮动属性#fd{
width:100px;
height:100px;
background-color:red;
float:left;
}
#sd{
width:100px;
height:100px;
background-color:blue;
float:left;
}
#td{
width:100px;
height:100px;
backgr..
分类:
Web程序 时间:
2016-05-13 15:41:52
阅读次数:
155
进程和线程的使用在前面博文已经讲述完毕,在完成一个最简单的服务器之后,就是要考虑下如何实现并发服务器了。 要实现服务的并发,只能通过进程和线程两种方式。 之前提到过listen_fd和connect_fd,listen用于监听是否有客户端连接,维护两个fd队列,没完成握手的和完成就绪的。 conne ...
分类:
编程语言 时间:
2016-05-13 12:48:23
阅读次数:
248
虽然电脑没有意识,但是中断(阻塞与非阻塞)使硬件在某些方面具有了智能! 因为发现了缺点,所以计算机的大牛们一直在改进!所以才有了一系列的select、poll和epoll模型的诞生。为了适应不同的环境,新的发现和改进是无可避免的,只是为了技术更过硬,生活更美好。相比与select和poll模型,epoll模型的优点:
(1) FD连接数量:Epoll它没有最大连接数的限制,只受进程打开描述符总数的限制;
(2)I/O效率:epoll支持水平触发和边缘触发,最大的特点在于边缘触发,它只告诉...
分类:
其他好文 时间:
2016-05-13 04:03:39
阅读次数:
159
字符设备的控制
1. 字符设备控制理论
1.1 作用
大部分驱动程序除了需要提供读写设备的能力外,还需要具备控制设备的能力。比如:改变波特率
1.2 应用程序接口
在用户空间,使用ioctl系统调用来控制设备,原型如下:
int ioctl(int fd, unsigned long cmd, ...)
...
分类:
其他好文 时间:
2016-05-12 18:46:21
阅读次数:
195
多路复用I/O模型poll() 模型 代码实现 poll()机制和select()机制是相似的,都是对多个描述符进行轮询的方式。 不同的是poll()没有描述符数目的限制。 是通过struct pollfd结构体,对每个描述符进行轮询的 struct pollfd fdarray { int fd; ...
分类:
其他好文 时间:
2016-05-10 23:24:03
阅读次数:
196
原理:在Linux系统的/proc 分区下保存着进程的目录和名字,包含fd(文件描述符)和其下的子目录(进程打开文件的链接),那么如果删除了一个文件,还存在一个 inode的引用:/proc/进程号/fd/文件描述符。我们只要知道当前打开文件的进程pid和文件描述符fd就能利用lsof工具列出进程打 ...
分类:
系统相关 时间:
2016-05-09 11:04:32
阅读次数:
189
先记录一下学习的成果,慢慢完善
四个相关函数
fd_set的结构在上一篇中有讲,同时解释了为什么最大1024.
-fd_set为1024/32的long型数组结构体。也就是结构体里面保存了long型数组int FD_ZERO(int fd, fd_set *fdset);
int FD_CLR(int fd, fd_set *fdset);
int FD_SET(int fd,...
分类:
其他好文 时间:
2016-05-07 08:05:45
阅读次数:
154