打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python实现的非阻塞长连接tcpserver服务器端【epoll版】
利用epoll实现的非阻塞服务器端代码

这不是一个完整实例, 只是一个参考, 偶没有测试过!
#!/usr/bin/env python# -*-coding:UTF-8-*-import select,socket,time# select.epoll()必须在版本高于py2.6以上使用server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server.bind(("192.168.1.174", 2222))server.listen(1)server.setblocking(0)epoller = select.epoll()epoller.register(server.fileno(), select.POLLIN|select.POLLERR|select.POLLHUP)print "Server Started!\n"while True:    ret = epoller.poll()    if ret==None:        continue    try:        if ret[0][1] == select.POLLIN:            clientSock,clientAddr = server.accept()            print "[",clientAddr,"] Connectioned!\n"            _data = '';            while True:                _tmp = clientSock.recv(1)                if _tmp == 0:                    continue                _data +=_tmp                if _tmp == "\n":#如接收到换行分割符则分析已接收到的字符串做出相应处理并反馈给客户端                    if _data[:len(_data-1)] == 'help':                        clientSock.send(" Thank your! Your said:" + _data)                        _data = ''                        continue                    elif _data == 'xiexie':                        clientSock.send(" Thank your! Your said: " + _data)                        _data = ''                        continue                            print "Empty Data!\n"    except IndexError:        epoller.unregister(server.fileno())        socket.close()        print "Server has been closed!"

标签: tcpserver, python, epoll 分类: Python/Java/Erlang学习

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
gevent
PHP套接字编程
PHP实现WebSocket实例详解
非阻塞模式WinSock编程入门
setsockopt与getsockopt之SOL_SOCKET关键字含义
Java Socket重要参数讲解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服