開発中にサーバーを起動する必要がある場合、ローカルテストではポートを直接書き込み、実際の環境ではバインドする 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. データベースの制約1.1 はじめに1.2 制約の種類1.3 ヌルでない1.4 ユニーク1....
マウスをドラッグしてページのスクリーンショットを撮ります(指定した領域にスクリーンショットをドラッグ...
この記事では、ウェブページのスネークゲームを実装するためのJavaScriptの具体的なコードを参考...
docker イメージ ID は一意であり、イメージを物理的に識別できます。repository: ...
問題の説明 (以下の説明は Windows 環境に限定されます): D:\develop\ide\m...
目次1. プロセスとスレッドの概念2. ブラウザの原則3. 同期と非同期4. 実行スタックとタスクキ...
目次概要二分木からB+木へクラスター化インデックス非クラスター化インデックスジョイントインデックスと...
カスケードを制御するために CSS の任意のプロパティに割り当てることができる特別な値が 2 つあり...
この記事では、MySQL ユーザー管理操作について説明します。ご参考までに、詳細は以下の通りです。こ...
MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例サーバー開発を行う際には、...
詳細には立ち入らずに、コードに直接進みましょう。一緒にコミュニケーションを取り、学びましょう。月ごと...
目次序文1. スタイルの浸透1. パターン浸透とは何ですか? 2. 使い方は? 2. ミキシング1....
圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...
システム環境: Redis バージョン: 6.0.8 Docker バージョン: 19.03.12シ...
結果: コードロジックを実装するのが主な部分であり、具体的なページ構造を一つ一つ紹介することはありま...