socket+select 의사 병행 작업 을 완료 한 인 스 턴 스

실례 는 다음 과 같다.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import socket
#    socket  
sk1 = socket.socket()
#  ip   
sk1.bind(('127.0.0.1', 8001))
#  
sk1.listen()
#                
message_dict = {}
#inputs    socket  
inputs = [sk1]
#                      output
output = []
import select
while True:
  r_list, w_list, e_list = select.select(inputs, output, inputs, 1)
  print('     socket%d' %len(inputs))
  print(r_list)
  for sk_or_conn in r_list:
    if sk_or_conn == sk1:
      conn, address = sk_or_conn.accept()
      inputs.append(conn)
      message_dict[conn] = []
    else:
      try:
        data_bytes = sk_or_conn.recv(1024)
      except Exception as ex:
        inputs.remove(sk_or_conn)
      else:
        data_str = str(data_bytes, encoding='utf-8')
        message_dict[sk_or_conn].append(data_str)
        output.append(sk_or_conn)
  for conn in w_list:
    data_message = message_dict[sk_or_conn][0]
    del message_dict[sk_or_conn][0]
    conn.sendall(bytes(data_message + ' ',encoding='utf-8'))
    output.remove(conn)
이상 의 이 socket+select 가 위조 병행 작업 을 완성 한 실례 는 바로 소 편 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기