2016-07-13 13 views
0

あるソフトウェアから同じPC上の別のソフトウェアにデータを送信しようとしています。前者のコードはPythonで書かれています。私はこれをやっている:Pythonのソケットをインターネットに接続しなくても使える

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.sendto("msg,Hi!", ("127.0.0.1", 12345)) 

私はインターネットアクセス(AF_INET)があるときこれはうまく動作します。しかし、これは単なるサンプルコードなので、私はインターネットアクセスを持たない他のアプリケーションにこのピースを含める必要があり、AF_INETは動作しません。これに代わる可能性はありますか?

私は既にAF_UNIXとAF_LOCALを試しましたが、どちらも動作していません。私はUDPを使用する必要があります。

+0

お使いのオペレーティングシステムはどちらですか?インターネットが接続されていないときに 'ping 127.0.0.1'を実行するとどうなりますか? – cdarke

答えて

4

AF_INETは、インターネットとは関係ありません。それは単にIPベースの通信を使用することを意味します。同じコンピュータでも、複数のコンピュータでも実行できます。 127.0.0.1は、ローカルホストIP、つまり自分のIPを指します。それぞれのunix/linuxマシンは同じローカルIPを持っています。

はい、このコードはインターネットアクセスなしで動作します。

+0

ご回答いただきありがとうございます。しかし、私はインターネットなしでこれを試しています。ノートパソコンがインターネットに接続されている場合にのみ、他のアプリケーションでメッセージが表示されます。インターネットがなければ、私は何のエラーもありませんが、私は他のアプリでメッセージが表示されません。これのために他の方法をお勧めしますか? –

+0

他のアプリケーションは127.0.0.1で "リッスン"していますか?または特定のIP上でのみですか? "netstat -plnu"を実行してください –

+0

それは聞いています。私はこれを知っている、私はそのIPとポート上のアプリケーションに自分の携帯電話からデータを送信することができます。このアプリは、インターネットの有無に関わらず、携帯電話からデータを受信します。しかし、私は最初のS/Wから同じことをしようとすると、インターネットなしでは動作しません。 –

0

もちろん、ソケットの使用中にインターネットの概念は必要ありません。アドホックネットワークを使用してリラックスしたネットワークを作成し、好きなものを転送するにはTCPまたはUDPソケットスクリプトを実行することができます。

あなたがInfactは、アドホックネットワーク内の異なるデバイス上のデータを共有するために マルチキャストまたは 放送スキームを使用することができます

関連する問題