如何使用线程"生成"多个TCP客户端而不是打开多个终端实例并多次运行脚本?

Pau*_*oso 10 python multithreading python-3.x

我为一个简单的TCP客户端编写了代码:

from socket import *

# Configurações de conexão do servidor
# O nome do servidor pode ser o endereço de
# IP ou o domínio (ola.python.net)
serverHost = 'localhost'#ip do servidor
serverPort = 50008

# Mensagem a ser mandada codificada em bytes
menssagem = [b'Ola mundo da internet!']

# Criamos o socket e o conectamos ao servidor
sockobj = socket(AF_INET, SOCK_STREAM)
sockobj.connect((serverHost, serverPort))

# Mandamos a menssagem linha por linha
for linha in menssagem:
    sockobj.send(linha)

    # Depois de mandar uma linha esperamos uma resposta
    # do servidor
    data = sockobj.recv(1024)
    print('Cliente recebeu:', data)

# Fechamos a conexão
sockobj.close()
Run Code Online (Sandbox Code Playgroud)

我想知道,如何使用线程"生成"多个客户端TCP而不是打开终端的多个实例并多次运行脚本.

Alu*_*Alu 2

试试这个:工作方法将被设置为线程的目标。所以每个线程都会使用该方法的代码。启动所有线程后,底部的 for 循环将等待所有线程完成。

在辅助方法中,您可以使用方法外部的数组或数据列表。因此,您可以迭代 URL 列表或将获取的数据附加到新的输出数组。

import threading

threads = []
maxNrOfThreads = 5

def worker():
    do_stuff()

for _ in range(maxNrOfThreads):
    thr = threading.Thread(target=worker)
    threads.append(thr)
    thr.setDaemon(True)
    thr.start()

for thread in threads:
    thread.join()
Run Code Online (Sandbox Code Playgroud)