2013-07-10 34 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