关于并发连接的问题?

0 views
Skip to first unread message

曹源

unread,
Nov 22, 2009, 2:06:19 AM11/22/09
to python-cn
没做过C/S结构的程序,现在想试试,一个基本问题,就是有多个客户端连接服务器的时候,服务器上的处理机制是什么样的,排队?线程?还是什么其他的真的不是很懂

王虎

unread,
Nov 22, 2009, 2:24:36 AM11/22/09
to pyth...@googlegroups.com
在客户端不多的情况下,用线程就可以处理。
再多的话,可以考虑 SELECT。
上千个客户端的话,windows 下有 IOCP 机制。
linux 下有 poll 、epoll。
网络框架这块有 ACE,你可看看。

2009/11/22 曹源 <lucas...@gmail.com>

云天

unread,
Nov 22, 2009, 10:18:56 AM11/22/09
to python-cn`CPyUG`华蟒用户组(中文Py用户组)
无论你在网上搜多少案例,都会告诉你用select,再加下面两种:
在window下一般用线程处理accept比较多。
在liunx下有多进程,多线程处理。
学好基础,做事不难。

On 11月22日, 下午3时06分, 曹源 <lucascao...@gmail.com> wrote:
> 没做过C/S结构的程序,现在想试试,一个基本问题,就是有多个客户端连接服务器的时候,服务器上的处理机制是什么样的,排队?线程?还是什么其他的真的不是很-懂

testisok

unread,
Nov 22, 2009, 8:08:32 PM11/22/09
to python-cn`CPyUG`华蟒用户组(中文Py用户组)
服务器端处理逻辑简单可以考虑select,处理复杂推荐多线程。
我个人的经验。

> > 没做过C/S结构的程序,现在想试试,一个基本问题,就是有多个客户端连接服务器的时候,服务器上的处理机制是什么样的,排队?线程?还是什么其他的真的不是很--懂- 隐藏被引用文字 -
>
> - 显示引用的文字 -

dayongxie

unread,
Nov 22, 2009, 9:35:52 PM11/22/09
to pyth...@googlegroups.com
APUE(Unix网络编程) 的第27章对此有比较详细的讨论。
可以考虑的编程库有libevent、asio、ace等
twisted应该也可以吧。

不过我感觉楼主为了那个考试系统而专门从头设计一个服务器不太划算,不如再考
虑用http的server吧。

testisok 写道:

cui shaowei

unread,
Nov 22, 2009, 9:53:59 PM11/22/09
to pyth...@googlegroups.com
用pyndk

2009/11/23 dayongxie <dayo...@163.com>



--
|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.

yao zhixiang

unread,
Nov 22, 2009, 10:01:36 PM11/22/09
to pyth...@googlegroups.com
我也是用C++做一个东西,在考虑同样的问题。
 
线程间的切换成本是比较大的,而且用线程还需要考虑同步问题,比较麻烦。

2009/11/23 cui shaowei <sha...@gmail.com>

Dayong Xie

unread,
Nov 22, 2009, 10:06:14 PM11/22/09
to python-cn`CPyUG`华蟒用户组(中文Py用户组)
艾,搞混了是UnixNetworkProgramming

曹源

unread,
Nov 23, 2009, 3:37:28 AM11/23/09
to pyth...@googlegroups.com
谢各位,只是为了在各方面都锻炼锻炼,才用C/S

2009/11/23 Dayong Xie <dayo...@163.com>
Reply all
Reply to author
Forward
0 new messages