zoukankan      html  css  js  c++  java
  • 番外:socketserver用法

    进击のpython

    *****

    番外:socketserver使用


    是不是被一般写法,多进程写法,多线程写法甚至是协程写法搞的不可开交

    云里雾里,仿佛将要放弃~再配上服务器要服务多个客户端

    完蛋了,全都乱了~那今天就给你推荐一个好的模块!sockerserver


    具体操作:

    import socketserver                              #1、引入模块
    class MyServer(socketserver.BaseRequestHandler): #2、自己写一个类,类名自己随便定义,然后继承socketserver这个模块里面的BaseRequestHandler这个类
    
        def handle(self):                            #3、写一个handle方法,必须叫这个名字
            #self.request                            #6、self.request 相当于一个conn
    
            self.request.recv(1024)                  #7、收消息
            msg = '亲,学会了吗'
            self.request.send(bytes(msg,encoding='utf-8')) #8、发消息
    
            self.request.close()                     #9、关闭连接
            pass
    if __name__ == '__mian__':
        server = socketserver.ThreadingTCPServer(('127.0.0.1',8090),MyServer)#4、使用socketserver的ThreadingTCPServer这个类,将IP和端口的元祖传进去,还需要将上面咱们自己定义的类传进去,得到一个对象,相当于我们通过它进行了bind、listen
        server.serve_forever()                       #5、使用我们上面这个类的对象来执行serve_forever()方法,他的作用就是说,我的服务一直开启着,就像京东一样,不能关闭网站,对吧,并且serve_forever()帮我们进行了accept
    
    
    #注意:
    #有socketserver 那么有socketclient的吗?
    #当然不会有,我要作为客户去访问京东的时候,京东帮我也客户端了吗,客户端是不是在我们自己的电脑啊,并且socketserver对客户端没有太高的要求,只需要自己写一些socket就行了。
    

    把注释去掉:

    import socketserver
    
    
    class MyServer(socketserver.BaseRequestHandler):
    
        def handle(self):
            # self.request                            
    
            self.request.recv(1024)
            msg = '亲,学会了吗'
            self.request.send(bytes(msg, encoding='utf-8'))
    
            self.request.close()
    
            pass
    
    
    if __name__ == '__mian__':
        server = socketserver.ThreadingTCPServer(('127.0.0.1', 8090), MyServer)
    
    

    是不是超级简单!!!!!!!!!

    这是服务端对吧,客户端很好写,就正常写

    到此!socket通信才算是真正的学习完了!


    *****
    *****
  • 相关阅读:
    centos 挂载u盘
    如何将网站部署到tomcat根目录下
    seo工具
    mysql 1045 access denied for user********
    div 自适应宽度
    mysql 日志提示 is marked as crashed and should be repaired
    css overflow:hidden无效解决办法
    java 调用 .net webservice
    Java开发笔记(十五)短路逻辑运算的优势
    Java开发笔记(十四)几种运算符的优先级顺序
  • 原文地址:https://www.cnblogs.com/jevious/p/11426119.html
Copyright © 2011-2022 走看看