Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierung von Single-Threaded-Multitasking in Python

Implementierung von Single-Threaded-Multitasking in Python

巴扎黑
巴扎黑Original
2017-08-08 14:41:291578Durchsuche

In diesem Artikel werden hauptsächlich die relevanten Informationen zu Python zur Implementierung eines nicht blockierenden Single-Threaded-Multitasking-TCP-Servers vorgestellt. Interessierte Freunde können sich darauf beziehen.

Die Beispiele hier Der Artikel enthält den spezifischen Code für die Implementierung eines nicht blockierenden Single-Threaded-Multitasking-TCP-Servers in Python. Der spezifische Inhalt lautet wie folgt:


# coding:utf-8
from socket import *

# 1.创建服务器socket
sock = socket(AF_INET, SOCK_STREAM)

# 2.绑定主机和端口
addr = ('', 7788) #
sock.bind(addr)

# 3. 设置最大监听数目,并发
sock.listen(10)

# 4. 设置成非阻塞
sock.setblocking(False)
# 保存客户端socket
clientAddrList = []
# print(sock.)

while 1:
  try:
    clientSocket, clientAddr = sock.accept()
  except:
    pass
  else:
    print("一个新客户端到来:%s" % str(clientAddr))
    clientSocket.setblocking(False)
    clientAddrList.append((clientSocket, clientAddr))

  for clientSocket, clientAddr in clientAddrList:
    try:
      recvData = clientSocket.recv(1024)
    except:
      pass
    else:
      if len(recvData) > 0:
        print("%s:%s" % (str(clientAddr), recvData))
      else:
        clientSocket.close()
        clientAddrList.remove((clientSocket, clientAddr))
        print("%s 已经下线" % str(clientAddr))

Das obige ist der detaillierte Inhalt vonImplementierung von Single-Threaded-Multitasking in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn