2013-07-10 65 views
1

如何在Python中創建多客戶端套接字?如何在Python中創建多客戶端套接字?

例如,我有X IP服務器的列表,我想創建一個X客戶端套接字:

IP_SERVERS = ['127.0.0.1', '127.0.0.2', '127.0.0.3'] 

我該怎麼辦,如果沒有多線程?

注:

我想嘗試連接到這一切IP_SERVERS無需等待第一個客戶端套接字 連接到第一臺服務器。

謝謝!

+0

做並行的事情是什麼的線程是。你爲什麼不想用它們? –

回答

0
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() 

這樣的事情?這也是通用代碼,只是一個想法或例子,如果試圖運行它,它將不起作用。

線程會更好地工作,因爲它不會按順序去等待套接字連接和發送數據等......

+0

這是不好的,因爲你等待從服務器接受,直到你沒有收到這個接受,你不能創建另一個客戶端套接字。 線程對我的想法並不好,因爲有時你有1000臺服務器要掃描ip,並且創建1000個線程,但效率不高,因爲我想爲我的問題搜索其他解決方案。 – MultiPython

+0

這將等待每個連接並一次打開一個連接。他想同時打開它們。通常這可以通過線程完成。 –

+0

因此,如果你不想使用線程,而你想要併發性,你怎麼去? – abdu