标签:bind ddr finally shutdown cep accept code from mon
Socket内部实现用的是多线程。
服务端
# coding=utf-8 import sys import socket import time import gevent from gevent import socket, monkey monkey.patch_all() def server(port): s = socket.socket() s.bind(‘0.0.0.0‘, port) s.listen(500) while True: cli, addr = s.accept() gevent.spawn(handle_request, cli) def handle_request(conn): try: while True: data = conn.recv(1024) print ‘recv:‘, data conn.send(data) if not data: conn.shutdown(socket.SHUT_WR) except Exception as e: print e finally: conn.close() if __name__ == ‘__main__‘: server(8001)
客户端
# coding=utf-8 HOST = ‘localhost‘ PORT = 8001 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) while True: msg = raw_input(‘>>:‘) s.sendall(msg) data = s.recv(1024) print ‘Received‘, data s.close()
标签:bind ddr finally shutdown cep accept code from mon
原文地址:https://www.cnblogs.com/allenzhang-920/p/10633985.html