0

unix ソケット API を使用する一般的なアプリケーションが、インターネット ルーターに接続されたコンピューターで動作しないことをご存知ですか? たとえば、C のソケットを使用して単純な Web サーバーを実行しているコンピューターがあるとします。別のリモート コンピューターの Web ブラウザーが要求を送信すると、Web サーバーは要求に対する応答を送信できません。インターネットルーター(?)(もちろん、別の理由があるかもしれません)。

ただし、有能な開発者による一般的なアプリケーションはうまく機能します。たとえば、utorrent を実行しているコンピューターがインターネット ルーターに接続されていても、utorrent クライアントはピアから一部のデータの要求を受信し、要求に適切に応答します。utorrent は、いくつかのシステム コールを使用してルーターの構成を調整しますか? そうでない場合、どのようにデータをアップロードしますか?

だから私の質問はそれです

  • ソケット API を使用する一般的なアプリケーションは、インターネット ルーターへの接続を使用して、ポートを転送するためにどのように達成しますか?

  • インターネットルーターに接続されたコンピューターでポートを転送するためにCの私のプログラムはどのように達成しますか?

    前もって感謝します。

  • 4

    2 に答える 2

    0

    彼らはしません。プログラムが開始した接続でデータを送受信するには、必要ありません。ポート転送は、マシン管理者が手動で行う必要があり、新しい接続を受信する場合にのみ必要です。

    于 2013-07-19T07:02:55.367 に答える
    0

    NAT ルーター経由でインターネットに接続している場合、ほとんどの場合、WAN からルーターへの一方的な接続は拒否されます。必要なのは、特定のポート番号または範囲で着信する一方的なトラフィックが受け入れられ、特定のローカル IP アドレスに転送されることをルーターに (何らかの方法で) 伝えることです。これは、ルーターの構成で手動で行うか、ルーターがUPnPをサポートしている場合は、そのプロトコルを使用して、ルーターを通過するためのポート マッピングを構成できます。

    于 2013-07-19T07:03:33.327 に答える