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

  • 相关阅读:
    GridView固定表头
    图片自动适应大小
    GridView实现用"..."代替超长字符串
    使用纯 CSS 设计3D按钮
    Net下二进制形式的文件(图片)的存储与读取
    repeater创建复杂的表头
    GridView加入自动求和求平均值小计
    CSS+DIV(盒子)
    DIV 在 IE 与 FF 下的设置
    gridView分页
  • 原文地址:https://www.cnblogs.com/lshedward/p/10253487.html
Copyright © 2020-2023  润新知