開発中にサーバーを起動する必要がある場合、ローカルテストではポートを直接書き込み、実際の環境ではバインドする IP も指定する必要があります。 サーバーに複数のネットワーク カードがある場合があり、システムは指定された IP とポートを介して通信する必要があるため、サーバーが使用する IP とポートを構成ファイルで定義する必要があります。 通常のテストでは、IP が指定されていない場合、ServerSocket はどこにバインドするのでしょうか? この場合、サーバーはこのポートを 0.0.0.0 にバインドします。つまり、すべての IP にバインドし、各 IP でリクエストを受信できるようになります。 0.0.0.0 が何であるかについては、ここでは説明しません。 以下はテスト プログラムです。次のプログラムを通じて状況がどのようなものか確認できます。 パッケージテスト; java.net.InetSocketAddress をインポートします。 java.net.ServerSocket をインポートします。 java.net.Socket をインポートします。 パブリッククラステスト{ パブリック静的void main(String[] args)は例外をスローします{ SocketClientクライアント = 新しいSocketClient(); 新しいスレッド(クライアント).start(); ServerSocket serverSocket = 新しい ServerSocket(); serverSocket.bind(新しいInetSocketAddress(8888)); // serverSocket.bind(新しいInetSocketAddress("127.0.0.1",8888)); // serverSocket.bind(新しいInetSocketAddress("192.168.1.100",8888)); System.out.println(serverSocket.toString()); serverSocket.accept(); } } クラスSocketClientはRunnableを実装します{ パブリックボイド実行() { 試す { スレッド.sleep(2000); 試す { ソケット socket = new Socket("127.0.0.1", 8888); System.out.println("127.0.0.1 成功" + socket.toString()); } キャッチ (例外 e) { System.err.println("127.0.0.1 に失敗しました"); } 試す { ソケット socket = new Socket("192.168.1.100", 8888); System.out.println("192.168.1.100 成功" + socket.toString()); } キャッチ (例外 e) { System.err.println("192.168.1.100 に失敗しました"); } } キャッチ (例外 e) { e.printStackTrace(); } } } この時点での印刷結果は次のとおりです。
127.0.0.1 を使用した場合の結果を印刷します。
192.168.1.100 を使用した場合の結果を印刷します。
デフォルトのバインディングは 0.0.0.0 であることがわかります。この時点で、このコンピューターにマークできる任意の IP を使用してポート 8888 にアクセスできます。 もちろん、これはデュアル ネットワーク カードの検証ではありません。まだ 1 つのネットワーク カードでプレイしているからです。条件が許せば、ブレードマシンで小さなテストを行うことができます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL CHARとVARCHARの保存と読み取りの違い
>>: Vue3は独自のページングコンポーネントをカプセル化します
目次1. 背景2. 検証プロセス3. 検証を作成する4. フロントエンドコード4.1 コアjsファイ...
キーの入力を求められた場合は、[キーがありません]を選択します。デスクトップエクスペリエンスを選択す...
最近、社内の重要なサーバデータを定期的にストレージにバックアップし、ついでにメモしておきたい以前、W...
前回の記事「Docker コンテナの UID と GID を理解する」では、Docker コンテナ内...
目次1. スクリプトvim環境2. シェルスクリプトで環境を定義する方法3. シェルスクリプト内の翻...
目次OAuth アプリの作成コードを取得するaccess_tokenを取得するユーザー情報を取得する...
需要背景ビジネス テーブル tb_image のデータの一部は次のとおりです。id は一意ですが、i...
IE10 では、<input> と <input type="passw...
フォームの送信方法をまとめると次のようになります。 1. 送信ボタンを使用して送信します。送信ボタン...
Linux で if を使用してディレクトリが存在するかどうかを判断する方法方法は次のとおりです。...
目次方法1方法2 nginxをインストールした後、PHPコードを解析できないことがわかりました。解決...
コードをコピーコードは次のとおりです。 html {オーバーフロー: 非表示; }体{オーバーフロー...
MySQL を学習すると、インストール後にいくつかのデフォルトのデータベースが付属していることに気付...
Windows Server 2008 サーバーが自動的に再起動します。サーバーにログインした後、ど...
序文Workbench が 1 台のコンピューターにインストールされており、別の Ubuntu サー...