私のスクリプトはマシン1で複数のクライアントを起動し、特定のポート上の異なるマシン上で動作するサーバーに接続しようとしています。サーバーを実行しているこれらのマシンはboto3によって起動され、インスタンスが実行中の状態になるまで5分間待機します。その後、ファイルを転送するためにSFTP接続が行われます。その後、sshを介してサーバスクリプトが実行されます。次に、machine-1で複数のクライアントが起動され、サーバーに接続しようとすると、1つの接続のみが確立され、他のクライアントは接続拒否エラーConnectionRefusedError
が発生します。Pythonソケット(ストリーム)で接続が拒否されましたか?
は、ここに私のコードです:
クライアント:
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()
サーバー:私は、サーバーのt1.micro
インスタンスを起動しています
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)
。インスタンスを起動してからクライアントとサーバーを起動する前に10分待っていましたが、同じエラーが発生しています。
接続先を確認できますか?また、AWSインスタンスのポートでトラフィックを有効にする必要があります – famagusta
セキュリティグループの受信ルールにポートを追加し、すべてのトラフィックソースを許可しました – sankycse
はシングルスレッドサーバーを使用していますか?なぜ1つだけが接続しているのか、他は接続していないのかを説明できる – famagusta