父类
此处以UDP协议举例,TCP协议做适当修改即可
import socket class MySocket(socket.socket):# 继承自 socket文件中的socket类,此时socket就是父类 def __init__(self,encoding='utf-8'): self.encoding = encoding super().__init__(type=socket.SOCK_DGRAM)# 执行父类socket中的__init__方法 def my_sendto(self,msg,addr): return self.sendto(msg.encode(self.encoding),addr)# 调用父类中的sendto方法 def my_recvfrom(self,num): msg_r,addr = self.recvfrom(num)# 调用父类的recvfrom方法 return msg_r.decode(self.encoding),addr
服务器端
from My_UDP import MySocket sk = MySocket('utf-8') sk.bind(('127.0.0.1',8090)) while 1: msg_r, addr = sk.my_recvfrom(1024) # 接收来自于哪里的消息 print(msg_r,addr) msg_s = input(('>>>')) sk.my_sendto(msg_s, addr) # 发给谁的消息 sk.close()
客户端
from My_UDP import MySocket sk = MySocket('utf-8') while 1: name = input('请输入您的名字:') msg_s = input('>>>') info = name + ' : ' + msg_s sk.my_sendto(info,('127.0.0.1',8090)) # 发给谁的消息 msg_r,addr = sk.my_recvfrom(1024)# 接收来自于哪里的消息 print(msg_r) sk.close()