荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: sh.bbs@bbs.sjtu.edu.cn (你看~你看~月亮的脸偷偷地在改变~), 信区: Linux
标  题: Re: unix下应付大量client连接的服务器程序的一点构思
发信站: 饮水思源 (Tue Mar 22 10:44:56 2005)
转信站: SZU!news.szu.edu.cn!bbsnews.sdu.edu.cn!SJTU

按照你的模型


1、select同时返回多个可操作fd,如何处理
2、select选择到一个可操作fd并进入处理程序,这个时候又有fd准备好了怎么办?
让它干等着,等到上一个fd处理完重新开始select ?
抑或程序在处理fd时阻塞或出错,其他fd怎么办?

利用select进行多路io是可行的,但不是这样操作的
或者说,你考虑得还不够复杂

【 在 aclaire (aaa) 的大作中提到: 】
: 下面是我对UNIX下面构建并发服务器一点构思,不知是否可行,欢迎大家指点一下幼稚
: 之处:
: 父进程调用accept,连接建立后accept返回,服务器然后调用fork,这样已连接套
: 接字在父子进程间共享,接下来就是子进程读写已连接的套接字,父进程则关闭已
: 连接套接字,继续等待另一个客户连接。典型代码:
: pid_t pid;
: int listenfd, connfd;
: listenfd = socket(...);
: bind(listenfd, ...);
: listen(listenfd, ...);
: .................(以下省略)

--
   .   ● .  .       .   /\/\  .
 .   .  .        .     =(    )|\|\     今晚的月光好美呀~
      .    .        .    |   \    )=
    .      ______________\___/\___)_________________________________________
 . .   .  |_____|_____|_____|\/___|_____|_____|_____|_____|_____|_____|_____|
          |__|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|__|
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.5.2]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店