#!/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学习
联系客服