2016-10-02 11 views
0

今日、私は最初のソケットプログラムを作成しました。ソケットを使用して(チャットのような)お互いにメッセージを送るクライアントとサーバーを作りました。内部IPを「ホスト」として使用する場合、接続が確立されます。そうでなければ外部IPを使用して接続は確立されません。Python:外部IP経由でソケットを使用して接続

編集1:

#Client 
s = socket.socket() 
host = '123.123.123.123' 
port = 9999 
s.connect((host, port)) 

#Server 
host = '' 
port = 9999 
s = socket.socket() 
s.bind((host, port)) 
s.listen(5) 
connection, address = s.accept() 

どのようにこの作品は、適切に、例えば、ラップトップだろうか? Wi-Fiを切り替えるたびにIPが変わるので、このノートパソコンで永久に動作するようなプログラムを作成するにはどうすればいいですか?

特定のポートを特定の内部マシン(192.168.0.5など)にポートフォワードする必要があることを理解します。ラップトップを使用していて、WIFIルーターにアクセスできない場合はどうしたらいいですか?ラップトップが使用するすべてのルータにはアクセスできません。

コードを永続的に互換性のあるものにします。

+0

「正しく動作しませんでした」は非常に曖昧です。ここでいくつかの質問があるようですが、最初は潜在的に良い質問です。あなたが使用しているコードを投稿し、それが何をするのかを正確に述べ、代わりに何が起こるのかを明記してください。他の質問は、このフォーマットでは広すぎます。 –

+0

スレッドを更新し、コードの重要な部分を追加し、より良い説明を追加 –

答えて

0

DynDNS.comまたはNoIP.comポータルを使用してください。あなたのIPを頻繁にチェックするラップトップにプログラムをインストールし、このIPを "my_laptop.noip.com"のようなあなたのアドレスに割り当てるポータルに現在のIPを送ります。そうすれば、人々はIPアドレスの代わりに "my_laptop.noip.com"を使ってラップトップにアクセスできます。

WiFiのようなローカルネットワークカード(NIC)のIPには常にソケットを割り当てます。あなたは外部IPにおろすことはできません。外部IP:ポートへのリクエストがあなたのローカルIP:ポートに送信されるようにルータを設定する必要があります。もちろん、インターネットプロバイダのルータはあなたのポートをブロックすることができ、動作しません。

+0

ノートPCのIPをNoIPとして持っていても、それはまだ私の外部IPにリダイレクトされています。外部:ポートを内部:ポートに転送することはできません。どうしたらいいですか? –

関連する問題