mininet を使用してネットワーク トポロジをエミュレートしました。トポロジには、複数のスイッチで接続された 2 つのホストが含まれています。ホスト 1でソケットを作成するクライアント アプリケーションを実行し、ホスト 2のサーバー アプリケーションに接続しようとしますが、失敗します。2 つのホストのいずれかでクライアント スクリプトとサーバー スクリプトをローカルで実行すると、問題なく接続されます。
サーバー.py:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 10021))
s.listen(5)
while 1:
(clientsocket, address) = s.accept()
#DO STH.
clientsocket.close()
client.py:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((args['ip'], 10021))
while 1:
#DO STH.
s.close()
ここで、サーバーおよびクライアント アプリケーションを起動するコマンドを実行するために使用されるコード
トポロジー.py:
server = net.getNodeByName('host2')
client = net.getNodeByName('host1')
server.cmd('./server.py & > serveroutput')
client.cmd('./client.py -i %serverIP > clientfile' % server.getIP())