服务端
import socketserver
ip = '127.0.0.1'
port = 8080
ADDR = (ip, port)
class MyHandler(socketserver.BaseRequestHandler):
def handle(self):
# 通信循环
# print(self.client_address)
# print(self.request)# self.requeset = conn 就是建立的连接
print(self.client_address)
while True:
try:
data = self.request.recv(1024)
if len(data) == 0:break
self.request.send(data.upper())
except ConnectionResetError:
break
if __name__ == '__main__':
s = socketserver.ThreadingTCPServer(ADDR, MyHandler, bind_and_activate=True)
s.serve_forever() # 代表连接循环
# 循环建立连接,每建立一个连接就会启动一个线程+调用MyHandler类产生一个对象,
# 调用该对象下的handle方法专门与刚刚建立好的连接做通信循环
客户端
import socket
phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
phone.connect(('127.0.0.1', 8080))
while True:
msg = input('客户端输入>>>').strip()
if len(msg) == 0:continue
phone.send(msg.encode('utf-8'))
data = phone.recv(1024)
print(data.decode('utf-8'))
phone.close()