2016-10-02 12 views
0

私は自分のマシンでそれらを使用しようとするとすごくうまくいくサーバークライアントを持っています。しかし、 - 私は同じLAN上の2つの異なるマシン上でそれらを使用しようとすると、それは仕事をしなかった!私はそれがループバックインターフェイスはそのうちの1つは、あなたのソケットをバインドしている場合ソケット付きの同じLanにある2台のコンピュータの間に接続してください

答えて

1

が、それは特定のネットワークインターフェイスにバインドされます問題、あるべき理由を理解しない

Lan = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Creates the socket object 
Lan.connect(('localhost', port)) 

: ここに私の接続であり、ローカルコンピュータからのみ使用できます。実際のネットワークインターフェイスコントローラ(NIC)にバインドされていない可能性があります

バインドするときにINADDR_ANYが必要ですが、どのプログラミング言語も言わなかったので、具体的にどのように指示するか分かりません。ここ

さらに詳しい情報:のpythonを使用して

understanding INADDR_ANY for socket programming - c

+0

イムそれは空の文字列でなければなりませんので。しかし、 'localhost'と空文字列の違いは何ですか? –

+0

localhostは、ループバックデバイス(同じコンピュータからのみ使用可能なふりがなネットワークインターフェイス)のポートをリッスンします。空の文字列は、コンピュータに接続されているすべてのネットワークデバイスで待機します。 2つの物理的なネットワーク接続がある場合は、そのうちの1つだけをリッスンするように指定できます。これがルーターの仕組みです。 – xaxxon

+0

ありがとうございました。別の最後の質問 - 私はあなたが言ったことをし、空の文字列を使用しようとしました。だから私はこれを持っています:__server_tunnel.connect(( "'、1245))__クライアントでは、これは:__local_tunnel.bind(("'、12345))__のservrです。今、私は同じコンピュータで接続することはできません! –

関連する問題