服务器:
#!/usr/bin/python3.4
import socketserver
import time
import sys
class myTCPServer(socketserver.TCPServer):
allow_reuse_address = True #设置端口重用
class MyTCPHandler(socketserver.StreamRequestHandler):
def handle(self):
while True:
self.data = str(self.rfile.readline().strip(),"utf-8") #从客户端读
if not self.data:
print("connect interrupt...")
exit()
print("recv:{}".format(self.data))
self.sdata = input("send message = ")
self.wfile.write(bytes(self.sdata.upper(),"utf-8")) #发送给客户端
print("-------------------------")
if __name__ == "__main__":
HOST, PORT = "localhost", 9999
#server = socketserver.TCPServer((HOST,PORT),MyTCPHandler)
server = myTCPServer((HOST,PORT),MyTCPHandler)
server.serve_forever()
客户端:
#!/usr/bin/python3.4
import socket
import sys
HOST, PORT = "localhost", 9999
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.connect((HOST, PORT))
while True:
data = input("send message = ")
sock.sendall(bytes(data+"\n","utf-8")) #加上'\n'表示此次数据结束
received = str(sock.recv(1024),"utf-8")
if not received:
print("connect interrupt...")
break
print("rece: {}".format(received))
print("-------------------------")