【发布时间】:2016-01-18 08:12:43
【问题描述】:
我有一个客户需要联系一些服务器。因此,客户端上的套接字将连接到特定的服务器端口和主机,但我如何从一台服务器切换到另一台服务器?所以我的简易客户端看起来像:
import socket
import sys
class Client:
def __init__(self):
self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if self.s is None:
print('could not open socket')
sys.exit(1)
self.servers = { 1998: True, 1999: True }
self.current_file = None
self.host = '127.0.0.1'
if len(sys.argv) > 1:
self.host = sys.argv[1]
def IterateServer(self):
keys = self.servers.keys()
for key in keys:
try:
self.s.connect((self.host, key))
except socket.error as msg:
self.servers[key] = False
continue
print('Connect' + str(key))
我的问题是关于IterateServer(self)
当我设置套接字连接时,它适用于第一台服务器(端口 1998),但不适用于第二台服务器。我认为当我将一个套接字连接到另一个套接字时,我无法重新连接它,对吗?
【问题讨论】:
-
你需要在这个问题中修正你的缩进。
-
是的,您是对的,您需要为每个要创建的连接创建一个套接字对象。因此,您需要为计划创建连接的每台服务器调用
socket.socket(...)。 -
@turbulencetoo 你能举个例子吗?
标签: python sockets server client