コードに接続するIPを指定しているときに機能する小さな片面メッセージ送信者がいますが、ソケットが任意のIPからの接続を許可するのに問題があります。問題のある行は次のとおりです。
mySocket = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
mySocket.bind ( ( '', 2727 ) )
''
はlocalhost用であり、手動でIPを入力しても機能します。例:'192.168.1.106'
しかし、どうすればそれをすべての人に公開したままにできますか?または、これに間違った接続タイプを使用していますか?
使用可能なすべてのIPv4アドレスにバインドする場合は、0.0.0.0
をIPアドレスとして指定します。ルーターの背後にいて、LANで使用できるだけでなく、インターネットにアクセスできるようにする場合は、LANの外側のユーザーがサービスにアクセスできるように、ポート転送ルールを設定する必要があります。
0.0.0.0
の詳細については、次のServerFaultの質問を参照してください。 https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0 -and-127-0-0-1
''
にバインドすると、'0.0.0.0'
と同じ効果があり、IPv6への移行が容易になります。
OSによっては、socket.AF_INET6
ソケットを開くと、IPv4およびIPv6がリッスンされます。
0.0.0.0にバインドすると、ルーティングできるIPv4アドレスからの接続を受け入れることができます。