自定义类简化程序

父类 

  此处以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()

  

原文地址:https://www.cnblogs.com/luxiangyu111/p/9506266.html