zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    HDU-Digital Roots(思维+大数字符串模拟)
    CodeForces
    ZOJ-Little Sub and Pascal's Triangle(思维规律)
    CodeForces
    POJ
    CodeForces
    Codeforces Beta Round #87 (Div. 2 Only)-Party(DFS找树的深度)
    vue中的一个 Echarts 和 点击事件
    vue中echarts引入中国地图
    跨域 同源 协议 端口 域名
  • 原文地址:https://www.cnblogs.com/alex-hrg/p/8960971.html
Copyright © 2011-2022 走看看