python socket(stream)中的连接被拒绝错误?

时间:2016-08-26 12:16:39

标签: python sockets amazon-web-services boto

我的脚本在计算机1中启动多个客户端,并尝试连接到在特定端口上的不同计算机上运行的服务器。运行服务器的这些机器由boto3启动,然后等待5分钟以使实例处于运行状态。然后进行sftp连接以传输文件。然后通过ssh执行服务器脚本。然后,当在machine-1中启动多个客户端并尝试连接到服务器时,只建立了一个连接,而其他连接拒绝连接错误ConnectionRefusedError

这是我的代码:

客户端:

def Client(datas):
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect((datas[0], 81))
    datasent =''+datas[1]+'-'+datas[2]+'#'
    client.send(datasent.encode("UTF-8"))
for dataToRun in dataForMP:
    hp = Process(target=Client, args=(dataToRun,))
    hp.start()
hp.join()

服务器:

if __name__ == '__main__':
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    sock.setblocking(0)
    sock.bind(("", 81))
    sock.listen(128)

我正在为服务器启动t1.micro个实例。我在启动实例后启动客户端和服务器之前还等了10分钟,但我得到了同样的错误。

1 个答案:

答案 0 :(得分:0)

问题在于启动服务器和客户端之间的时间不匹配。实际上,它需要很少的时间来启动服务器,同时客户端请求连接。所以我在启动客户端之前延迟了2秒,问题解决了。