zoukankan      html  css  js  c++  java
  • 网络编程之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()

      

  • 相关阅读:
    c#读取XML
    Javascript 自动计算生日
    Thread.currentThread()与setDaeMon(boolean c)方法
    StringBuffer类的delete()方法和deleteCharAt()方法
    getStackTrace()方法使用
    JDBC详解
    eclipse与idea路径不匹配
    Idea导入maven项目不自动识别pom.xml
    IDEA找不到或无法加载主类
    MySQL:主从复制与处从复制同步延迟
  • 原文地址:https://www.cnblogs.com/PythonMrChu/p/9838286.html
Copyright © 2011-2022 走看看