在编写udp协议的程序中,经常会被来回编码搞得焦头烂额,其实可以利用继承socket类的方法,将编码方式默认为"utf-8"
import socket class MySocket(socket.socket):# 继承自 socket文件中的socket类,此时socket就是父类 def __init__(self,encoding='utf-8'): self.encoding = encoding super(MySocket, self).__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
在客户端与服务器端直接调用就可以使用了,后面的编译与解码都是默认"utf-8":
from (存放上述程序的文件) import MySocket sk = MySocket()