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()

      

  • 相关阅读:
    OpenAL
    VS2013关于“当前不会命中断点源代码与原始版本不同”的BUG
    Windows中的句柄
    (转)OpenGL中位图的操作(glReadPixels,glDrawPixels和glCopyPixels应用举例)
    全局变量的初始化顺序
    与时间有关的windows函数
    unity中的协程
    Unity3d碰撞检测中碰撞器与触发器的区别
    unity脚本入门
    面试总结关于Spring面试问题(精选)
  • 原文地址:https://www.cnblogs.com/PythonMrChu/p/9838286.html
Copyright © 2011-2022 走看看