1.EchoServer
单线程阻塞Server
# -*- coding: UTF-8 -*-
from SocketServer import BaseRequestHandler, TCPServer
class EchoHandler(BaseRequestHandler):
def handle(self):
print "Got connect from", self.client_address
while True:
msg = self.request.recv(8192)
if not msg:
break
print self.client_address, msg
self.request.send(msg)
if __name__ == "__main__":
serv = TCPServer(('', 2000), EchoHandler)
serv.serve_forever()
2.Client
单线程client
# -*- coding: UTF-8 -*-
from socket import socket, AF_INET, SOCK_STREAM
s = socket(AF_INET, SOCK_STREAM)
s.connect(('localhost', 2000))
while True:
data = raw_input()
if not data or data == 'exit':
break
s.send("%s\r\n" % data)
data = s.recv(8192)
if not data:
break
print data.strip()
print s.send(b"break")
print s.recv(8192)
s.close()