zoukankan      html  css  js  c++  java
  • socketserver模块

    sockerserver模块

      socketserver针对服务器,没客户端的事。  

    import socketserver                                #步骤一 导入模块
    class Myserver(socketserver.BaseRequestHandler):  #步骤二 自定义类,集成BaseRequestHandler类
        def handle(self):                              #步骤三 重写handle方法,需要实现的功能都在此方法下
            print('conn',self.request)                  #self.requset 就是conn
            print(self.request.recv(1024))
    if __name__ == '__main__':
        s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),Myserver)     #步骤四,实例ThreadingTCPServer一个对象,参数是ip地址和端口,自定义的继承BaseRequestHandler类
        s.serve_forever()                                  #对象调用 serve_forver()实际执行了handle方法

      这样,服务端通过多线程实现了并发。

    socketserver模块实际上隐藏了链接循环,通讯循环。

    import socketserver
    
    class MyTCPhandler(socketserver.BaseRequestHandler):
        def handle(self): #通讯循环
            #self.request=conn      self.request 在通讯循环里直接用就可以。
            while True:
                try:
                    data=self.request.recv(1024)
                    if not data:break
                    self.request.send(data.upper())
                except ConnectionResetError:
                    break
    
    if __name__ == '__main__':
        obj=socketserver.ThreadingTCPServer(('127.0.0.1',8082),MyTCPhandler)
        obj.serve_forever()      #连接循环
  • 相关阅读:
    Python方法
    Cpp求PI
    Asp.net身份验证和授权
    [转] 魔兽系列事件报道
    directxsdk aug 2006
    [转]转变的开始!NVIDIA更换新Logo
    wxWidgets 2.7.0 released
    OpenGL 和 Vista(续)
    暴雪员工的跳槽纪录
    3D版的星际争霸
  • 原文地址:https://www.cnblogs.com/654321cc/p/7602853.html
Copyright © 2011-2022 走看看