自定义类简化程序
父类
此处以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()

浙公网安备 33010602011771号