• python 多线程 并发socket实例


    sever side:

    import socketserver
    class MyTCPHandler(socketserver.BaseRequestHandler):
        def handle(self):
            '''try内的代码就是要实现的功能,目前是实现小写转大写,可以自定义,
            try是在客户端结束时不报错
            '''
            try:
                 while True:
                    self.data = self.request.recv(1024).strip()
                    print("{} wrote:".format(self.client_address[0]))
                    print(self.data)
                    self.request.sendall(self.data.upper())
            except ConnectionResetError as e:
                print(e)
    if __name__ == "__main__":
        HOST, PORT = "localhost", 6969
        server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler)
        server.serve_forever()
    View Code

    client side:

    import socket
    sock = socket.socket()
    #sock.connect(('120.78.197.182',51102))
    sock.connect(('localhost',6969))
    flag = False
    while not flag:
        data = input(">>:").strip()
        if data == "b":flag = True
        if len(data) == 0:continue
        sock.send(data.encode())
        recv_data = sock.recv(8096)
        print("recv:",recv_data.decode())
    
        # recv_data = b''
        # recv_len = 0
        # cmd_length = int(sock.recv(8096).decode())
        # cli_ack = sock.send(b'ack')
        # print('cmd_len',cmd_length)
        # while recv_len != cmd_length:
        #     data = sock.recv(1024)
        #     recv_data += data
        #     recv_len += len(data)
        # print('recv:',recv_data.decode())
    sock.close()
    View Code
  • 相关阅读:
    paramiko
    Oracle 正则
    格式化输出
    pl/sql
    logging-----日志模块
    linux学习笔记01
    PHP-HTML-MYSQL表格添加删除
    费了好大劲做的比较好看的表单
    HTML框架
    两天笔记
  • 原文地址:https://www.cnblogs.com/alex-hrg/p/8960971.html
Copyright © 2020-2023  润新知