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 编码和解码 JSON 对象
    搞定github下载加速
    git错误:fatal: Could not read from remote repository.解决
    webstorm安装配置
    node.js下载安装
    IDEA安装小配置
    JAVA软件安装
    关于升级一般软件的一些想法
    linux 的 逻辑卷管理
    记一次内核升级。
  • 原文地址:https://www.cnblogs.com/654321cc/p/7602853.html
Copyright © 2011-2022 走看看