python并发编程之高并发下的tcp套接字编程

服务端

  import socket
  from  multiprocessing import  Process
  def task(sock):
      # 1024 bytes
      while True:
          # 客户端非正常断开,需要捕捉异常
          try:
              data = sock.recv(1024)
              if len(data) == 0:  # 当客户端主动断开时,接收的数据为空
                  break
              print(data)
              sock.send(data.upper())
          except Exception as e:
              print(e)
              break
      sock.close()
  if __name__ == '__main__':

      server = socket.socket()
      server.bind(('127.0.0.1',8080))
      server.listen(5)
      print("正在接收客户端消息:")
      while True:
          sock,addr = server.accept()
          print(sock)
          print(addr)
          p = Process(target=task,args=(sock,))
          p.start()

      server.close()

客户端

    import socket
    client = socket.socket()
    client.connect(('127.0.0.1',8080))
    while True:
        input_data = input('请输入要传输的数据:(q to quit)').strip()
        if not input_data:continue
        if input_data == 'q':
            break

        client.send(input_data.encode('utf-8'))
        data = client.recv(1024)
        print(data)
    client.close()
posted @ 2021-07-20 19:13  zhutianyu  阅读(155)  评论(0)    收藏  举报