- 论坛徽章:
- 0
|
代码就不贴出了,比较烂.呵呵.
linux TCP网络服务器采用pre-listen模式:
main();---->socket();----->bind();----->listen();---->fork();出四个子进程----->accept();阻塞
然后从远端连接网络服务器
Jan 13 09:27:40 shinco xxx: INFO:core:tcp_recv_loop: Receive Connection from 10.20.16.197 ,44028
Jan 13 09:27:40 shinco xxx: INFO:core:tcp_recv_loop: Worker PID 21719
Jan 13 09:27:51 shinco xxx: INFO:core:tcp_recv_loop: Receive Connection from 10.20.16.197 ,44029
Jan 13 09:27:51 shinco xxx: INFO:core:tcp_recv_loop: Worker PID 21720
Jan 13 09:27:56 shinco xxx: INFO:core:tcp_recv_loop: Receive Connection from 10.20.16.197 ,44030
Jan 13 09:27:56 shinco xxx: INFO:core:tcp_recv_loop: Worker PID 21721
Jan 13 09:28:03 shinco xxx: INFO:core:tcp_recv_loop: Receive Connection from 10.20.16.197 ,44031
Jan 13 09:28:03 shinco xxx: INFO:core:tcp_recv_loop: Worker PID 21722
Jan 13 09:28:14 shinco xxx: INFO:core:tcp_recv_loop: Receive Connection from 10.20.16.197 ,44032
Jan 13 09:28:14 shinco xxx: INFO:core:tcp_recv_loop: Worker PID 21719
Jan 13 09:37:06 shinco xxx: INFO:core:tcp_recv_loop: Receive Connection from 10.20.16.197 ,38824
Jan 13 09:37:06 shinco xxx: INFO:core:tcp_recv_loop: Worker PID 21720
Jan 13 09:37:11 shinco xxx: INFO:core:tcp_recv_loop: Receive Connection from 10.20.16.197 ,38825
Jan 13 09:37:11 shinco xxx: INFO:core:tcp_recv_loop: Worker PID 21721
Jan 13 09:37:12 shinco xxx: INFO:core:tcp_recv_loop: Receive Connection from 10.20.16.197 ,38826
Jan 13 09:37:12 shinco xxx: INFO:core:tcp_recv_loop: Worker PID 21722
这说明当4个子进程同时阻塞在accept时,如果有连接到来,kernel会按次序激活一个子进程来处理连接.?
Linux shinco 2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008 i686 i686 i386 GNU/Linux
centos52
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.2 (Final)
Release: 5.2
Codename: Final
[ 本帖最后由 linuxlixk 于 2010-1-13 10:11 编辑 ] |
|