欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

socket + select 完成偽并發(fā)操作的實例

 更新時間:2017年08月15日 09:43:43   投稿:jingxian  
下面小編就為大家?guī)硪黄猻ocket + select 完成偽并發(fā)操作的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

實例如下:

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

import socket
#創(chuàng)建一個socket對象
sk1 = socket.socket()
#綁定ip和端口
sk1.bind(('127.0.0.1', 8001))
#監(jiān)聽
sk1.listen()
#定義一個字典存放客戶端發(fā)送的信息
message_dict = {}
#inputs用于存放socket對象
inputs = [sk1]
#哪一個客戶端發(fā)送信息就把哪一個客戶端的存放進output
output = []
import select
while True:
  r_list, w_list, e_list = select.select(inputs, output, inputs, 1)
  print('正在監(jiān)聽的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 完成偽并發(fā)操作的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論