如何在Python中创建多客户端套接字?如何在Python中创建多客户端套接字?
例如,我有X IP服务器的列表,我想创建一个X客户端套接字:
IP_SERVERS = ['127.0.0.1', '127.0.0.2', '127.0.0.3']
我该怎么办,如果没有多线程?
注:
我想尝试连接到这一切IP_SERVERS无需等待第一个客户端套接字 连接到第一台服务器。
谢谢!
如何在Python中创建多客户端套接字?如何在Python中创建多客户端套接字?
例如,我有X IP服务器的列表,我想创建一个X客户端套接字:
IP_SERVERS = ['127.0.0.1', '127.0.0.2', '127.0.0.3']
我该怎么办,如果没有多线程?
注:
我想尝试连接到这一切IP_SERVERS无需等待第一个客户端套接字 连接到第一台服务器。
谢谢!
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()
这样的事情?这也是通用代码,只是一个想法或例子,如果试图运行它,它将不起作用。
线程会更好地工作,因为它不会按顺序去等待套接字连接和发送数据等......
这是不好的,因为你等待从服务器接受,直到你没有收到这个接受,你不能创建另一个客户端套接字。 线程对我的想法并不好,因为有时你有1000台服务器要扫描ip,并且创建1000个线程,但效率不高,因为我想为我的问题搜索其他解决方案。 – MultiPython
这将等待每个连接并一次打开一个连接。他想同时打开它们。通常这可以通过线程完成。 –
因此,如果你不想使用线程,而你想要并发性,你怎么去? – abdu
做并行的事情是什么的线程是。你为什么不想用它们? –