開発中にサーバーを起動する必要がある場合、ローカルテストではポートを直接書き込み、実際の環境ではバインドする 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は独自のページングコンポーネントをカプセル化します
目次MySQLデータベースの名前を変更する方法最初の方法: データベースの名前を変更することは非推奨...
目次地図フィルターいくつかの毎インデックスを検索パイプ参考回答1. パラメータを受け入れる関数を返す...
シミュレーションテーブルとデータスクリプト次の SQL ステートメントをコピーして、sys_dept...
CentOS 8 が利用可能になりました! CentOS 8 と RedHat Enterprise...
目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...
この記事では、MySQL ユーザー管理操作について説明します。ご参考までに、詳細は以下の通りです。こ...
Linux に Scala 環境をインストールするのは非常に簡単です。Ubuntu 環境であれば、さ...
MySQL操作情報のクエリ show status -- すべての MySQL 操作情報を表示します...
参照: https://www.jb51.net/article/112612.htmシステム内のJ...
私は最近 Linux を学び始めました。Ma Ge の umask に関する Linux コースを読...
1. 新サイトホームページのリンクレイアウト1. リンク配置の位置:リンク配置の位置によって、リンク...
1. 公式サイトにアクセスします: D:\mysql-5.7.21-winx64\bin をダウンロ...
Shopify Plus は、私たちが設立した e コマース プラットフォームのエンタープライズ バ...
デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行さ...