• socketserver的使用


    socketserver底层也是使用线程实现的并发,直接上代码

    # server
    
    import socketserver
    
    '''
    socketserver使用模式:
    
    1 功能类
    
    class Myserver(socketserver.BaseRequestHandler)  #
        def handle(self):
            pass
    
    
    2  server = socketserver.ThreadingTCPServer(('127.0.0.1',8080),Myserver)
    
    
    
    3  server.serve.forever()
    '''
    
    class Myserver(socketserver.BaseRequestHandler):  #
        def handle(self):
            '''
            并发的业务逻辑
            :return:
            '''
            while 1:
                client_data = self.request.recv(1024)
                print(client_data.decode('utf-8'))
                if client_data.decode('utf-8') == 'exit':
                    print('客户端断开链接,等待新的用户连接......')
                    break
                print('接收数据>>>', str(client_data, 'utf-8'))
                response = input('响应数据 >>>')
                self.request.sendall(bytes(response, 'utf-8'))
    
            self.request.close()
    
    # 1. self.socket   2 self.socket.bind()   3.  self.socket.listen(5)
    server = socketserver.ThreadingTCPServer(('127.0.0.1',8080),Myserver)
    
    server.serve_forever()
    
    
    
    
    # client
    from socket import *
    
    client = socket(AF_INET, SOCK_STREAM)
    client.connect(('127.0.0.1', 8080))
    
    while True:
        res = input('>>>').strip()
        if not res: continue
        client.send(res.encode('utf-8'))
        data = client.recv(1024)
        print(data.decode('utf-8'))
    
    client.close()

  • 相关阅读:
    数据库_初学
    数据库—修改表的列
    做一个导航栏(bootstrap)
    几个比较常用的特效
    当、你想给一个目标挂上一个事件时
    图片轮播的几个小程序
    JS练习题 ( 下拉菜单;好友选中输入)
    Bootstrap 按钮和折叠插件
    Bootstrap 轮播插件
    Bootstrap 弹出框和警告框插件
  • 原文地址:https://www.cnblogs.com/lshedward/p/10253487.html
Copyright © 2020-2023  润新知