服务器:
#!/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("-------------------------")
本文介绍了一个简单的TCP服务器与客户端实现方式,通过Python的socketserver模块搭建服务器,并与客户端进行消息交互。客户端可以输入消息发送给服务器,服务器接收到消息后转换为大写返回。
725

被折叠的 条评论
为什么被折叠?



