• 网络编程之sock server,自定义一个与sock server类相似的功能,支持多客户端通信


    #自定义一个与sock server类相似的功能
    #server.py import socket from multiprocessing import Process class makeServer(object):#创建服务类 def __init__(self,ip,port): #初始化方法 self.ip=ip self.port=port def makeAnServer(self):#开启服务 server=socket.socket() server.bind((self.ip,self.port)) server.listen(100) return server def forever(self,server):#一直服务下去 while 1: conn, addr = server.accept()#等待连接 p = myProcess(conn, addr)#创建一个进程 p.start()#开启进程 class myProcess(Process):#自定义进程类 def __init__(self,conn,addr):#初始化进程 super().__init__()#先进性父类的init self.conn=conn self.addr=addr def run(self):#运行进程 print('连接成功。。。') recv_data=self.conn.recv(1024).decode('gbk') print('recv_data:',recv_data) self.conn.send('你好'.encode('gbk')) if __name__ == '__main__': obj=makeServer('127.0.0.1',8001)#实例化对象 server=obj.makeAnServer()#开启服务 obj.forever(server)#一直服务下去 #client.py import socket client=socket.socket() client.connect(('127.0.0.1',8001)) content=input('请输入内容:') client.send(content.encode('gbk')) recv_data=client.recv(1024).decode('gbk') print(recv_data)



    #系统socket server模块
    import socketserver class myServer(socketserver.BaseRequestHandler): def handle(self): #self.request 就是conn pass if __name__=="__main__": socketserver.TCPServer.allow_reuse_address=True server=socketserver.ThreadingTCPServer(('127.0.0.1',8001),myServer) server.server_forever()

      

  • 相关阅读:
    wsl 如何去掉 windows 的环境变量
    wget出现Unable to establish SSL connection
    openssh 升级
    element/JS文件上传和下载excel问题
    mysql操作过程中常见问题汇总
    [VB.NET Tips]线程传递参数四种方法
    主路由拨号_openwrt做旁路由_ipv4端口映射的设置
    Openwrt_Linux_crontab任务_顺序执行脚本
    Armbian_笔记
    Debian10_Centos8_fail2ban
  • 原文地址:https://www.cnblogs.com/PythonMrChu/p/9838286.html
Copyright © 2020-2023  润新知