Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中创建多客户端套接字?_Python_Sockets_Connection_Client - Fatal编程技术网

如何在Python中创建多客户端套接字?

如何在Python中创建多客户端套接字?,python,sockets,connection,client,Python,Sockets,Connection,Client,如何在Python中创建多客户端套接字 例如,我有一个X Ip服务器列表,我想创建一个X客户端套接字: IP_SERVERS = ['127.0.0.1', '127.0.0.2', '127.0.0.3'] 没有多线程我怎么能做到这一点 注: 我想尝试在不等待第一个客户端套接字的情况下连接到所有这些IP_服务器 连接到第一台服务器 谢谢大家! import socket servers = [] #add servers here class Clients: def __init_

如何在Python中创建多客户端套接字

例如,我有一个X Ip服务器列表,我想创建一个X客户端套接字:

IP_SERVERS = ['127.0.0.1', '127.0.0.2', '127.0.0.3']
没有多线程我怎么能做到这一点

注:

我想尝试在不等待第一个客户端套接字的情况下连接到所有这些IP_服务器 连接到第一台服务器

谢谢大家!

import socket
servers = [] #add servers here
class Clients:
    def __init__(self):
       self.socket = new socket() #change this to full socket init
    def connect(self, url):
       self.socket.connect(url)
    def send(self, data):
       self.socket.send(data)
    def close(self):
       self.socket.close()

for url in servers:
    client = new Clients()
    client.connect(url)
    client.send('abcd')
    client.close()
像这样的?此外,这是一般代码,只是作为一个想法或示例,如果尝试运行它,它将不起作用


线程将工作得更好,因为它不会按顺序运行并等待套接字连接和发送数据等。

这不好,因为您等待服务器的accept,并且在没有收到此accept之前,无法创建另一个客户端套接字。线程对我的想法不好,因为有时你需要扫描1000个服务器ip,并创建1000个线程,这并不有效,因为我想搜索其他解决方案来解决我的问题。这将等待每个连接,然后一次打开一个。他想同时打开它们。通常情况下,这可以通过线程来完成。所以,如果你不想使用线程,你想获得并发性,你该怎么做?但在线程中,我有一个问题,打开1000个线程是不好的,对吗?我认为另一种解决方案是一个接一个地打开套接字,而不必等待服务器的accept前进到另一个套接字。为什么需要检查1000台服务器?你必须使用线程,使用批处理100个线程,并随着前一个线程的完成而移动?并行处理是线程的目的。你为什么不想用它们呢?