- def process_listen(listen_fd)
- #epoll 或 select 监听listenfd
- if __name__ == "__main__":
- reload(sys)
- sys.setdefaultencoding('utf8')
- InitLog()
- port = int(sys.argv[1])
- try:
- listen_fd = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
- except socket.error, msg:
- logger.error("create socket failed")
- try:
- listen_fd.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- except socket.error, msg:
- logger.error("setsocketopt SO_REUSEADDR failed")
- try:
- listen_fd.bind(('', port))
- except socket.error, msg:
- print "bind fail"
- logger.error("bind failed")
- try:
- listen_fd.listen(10240)
- listen_fd.setblocking(0)
- except socket.error, msg:
- logger.error(msg)
- child_num = cpu_count()
- c = 0
- while c < child_num:
- c = c + 1
- if 'Linux' in platform.system():
- newpid = os.fork()
- if newpid == 0:
- process_listen(listen_fd)
- else:
- pass
- process_listen(listen_fd)
- //该片段来自于http://www.codesnippet.cn/detail/2404201512432.html
来源: http://www.codesnippet.cn/detail/2404201512432.html