Python论坛  - 讨论区

标题:Re: [python-chinese] 使用NIO技术建立一个面向多个Client的服务器

2005年08月19日 星期五 21:57

limodou limodou at gmail.com
Fri Aug 19 21:57:49 HKT 2005

在 05-8-19,sunyong<sunqingmingzhi at 163.com> 写道:
> import select
> """
> 文件名:myserver.py
> 使用NIO技术建立一个面向多个Client的服务器
> 作者:孙永
> 日期:2005-08-18
> 测试方法:
>         1 运行该程序
>         2 telnet localhost 2046(可以执行多个telnet)
>         3 如果要终止服务,使用ctrl+C
>         这是我昨天晚上学习的结果,呵呵
> """
> 
> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> s.bind(("localhost", 2046))
> s.listen(1)
> ls=[s]
> le=[]
> try:
>     while(1):
>                 #使用select方法监听socket事件
>         ft=select.select(ls,[],le)
>         for fd in ft[0]:
>             if (s == fd):
>                                 #如果是accept事件
>                 stemp,addr=s.accept()
>                 ls.append(stemp)
>                 print addr,"has been connected"
>             else:
>                                 #如果是read事件
>                 data=fd.recv(1024)
>                 if data=="q" or data=="":
>                                         #接收到q断开连接
>                     ls.remove(fd)
>                     fd.close()
>                     continue
>                 print "data=",data
> finally:
>     s.close()
> 

为什么叫NIO呢?我好象只在Java中看到这个东西。select并不是一个新东西,在unix很早就有了。


-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号