如何在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
做並行的事情是什麼的線程是。你爲什麼不想用它們? –