Javaを使って簡易サーバー/クライアントエコー機能を実装する方法の紹介_基礎知識
ソケットは、特定のプログラミング モデルに基づくプロセス間通信リンクのエンドポイントを指します。この特定のプログラミング モデルの人気のため、ソケットという名前は Java テクノロジを含む他の分野で再利用されています。
接続を確立する場合、1 台のマシンが接続を待機するプロセスを実行し、別のマシンが最初のマシンへの接続を試行する必要があります。この電話システムも同様です。一方の当事者が通話を開始し、もう一方の当事者が電話を待つ必要があります。
Java ネットワーク モデル図
以下では、「echo」機能を備えたサーバーとクライアントを使用して、ネットワーク アプリケーションを作成するための java.net パッケージのアプリケーションを紹介します。
この例の主な機能は、サーバー側のプログラムがクライアントの入力を待機し、読み取った情報をクライアントにエコーし、同時にサーバー側のコンソールに出力することです。クライアントはコンソールから情報を受信した後、クライアントに入力を送信し、サーバーからエコー データを受信して、それをコンソールに表示します。
クライアント プログラム コードは次のとおりです:
package com.javaapp.ch11;
import java.io.*;
import java.net.*;
/**
* 説明: 「エコー」機能を備えたサーバー側およびクライアント側のプログラム
*/
public class EchoClientDemo {
// サーバー側のサービス ポート。
public static Final int SERVERPORT = 990;
public static void main(String[] args) {
try {
// 接続ソケットを確立します。
Socket s = new Socket("localhost",SERVERPORT);
System.out.println("socket = " s);
// 新しいネットワーク接続の入力ストリームを作成します。
BufferedReader in = 新しいbufferedReader
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(s.getOutputStream())), true); リーダー。
BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("文字列を入力してください。終了するには BYE と入力してください! ");
while (true) {
// コンソールから入力された文字列を読み取り、ネットワーク接続に出力します。つまり、データをサーバーに送信します。
out.println(stdin.readLine());
String str = in.readLine();
String str = in.readLine();
。まず、java.net パッケージの Socket クラスを使用して接続ソケットを確立し、次に Socket オブジェクトの getInputStream メソッドを使用してサーバーからデータを受信し、Socket オブジェクトの getOuputStream メソッドを使用してサーバーにデータを送信します。入力ストリームと出力ストリームを作成した後は、ファイルと同じ方法でデータの読み取りと書き込みを行うことができます。
複数のクライアントをサポートする「echo」サーバー側プログラム コードは次のとおりです:
コードをコピーします
コードは次のとおりです。以下のように:
package com.javaapp.ch11;
import java.io.*;
import java.net.*;
/**
* 説明: マルチクライアント「エコー」サーバー側プログラムをサポート
*/
public class EchoServerThreadDemo {
// サーバー側のサービス ポート。
public static Final int SERVERPORT = 990;
public static void main(String[] args) {
try {
// 接続されたクライアントのシリアル番号。
int number = 1;
int number = 1;
ServerSocket s = new ServerSocket(SERVERPORT);
System.out.println("Started: " s);
while (true) {
、接続ソケット文字を確立します。
ソケット受信 = s.accept();
System.out.println("接続 " 番号 " が受け入れられました: ");
System.out.println(incoming);
スレッドは次の目的で使用されます。サーバーとクライアント間のデータ送信。
// メインプログラムは、リクエストが来ているかどうかを監視し続けます。
System.err.println ("IOException");
}
}
}
class EchoThread extends Thread {
private Socket s ;
int n;
public EchoThread(Socket incoming,int number ) {
s = incoming;
n = number;
}
} public void run() {
{
を試してください
BufferedReader in = 新しいbufferedReader
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(s.getOutputStream())),true);
System.out.println("Hello! 終了するには BYE と入力してください。" );
// クライアントの入力をエコーします。
While (TRUE) {
// ネットワークから 1 行を読み取り、クライアントからデータを受信します。
String line = in.readLine();
文字列行 = in.readLine();
//受信したデータが空の場合(直接Enterを押した場合は空データではありません)、終了します。ループを終了して接続を閉じます。
if (行 == {
System.out.println( "クライアント「 n 」は BYE に入りました!");
System.out }
("Echo" n ":" line);
// ネットワークに接続して行を出力します。つまり、データをクライアントに送信します。
out.println("Echo " n ": " line);
s.close();
} catch (IOException e) {
System.err.println("IOException");
}
}
}
サーバー側プログラムでは、まず java.net パッケージの ServerSocket クラスを使用してサーバー側のリスニング ソケットを作成します。次に、ServerSocket クラスの accept メソッドを使用して、ユーザー要求を待機して受信します。サーバーは接続要求を受信すると、サーバーとクライアント間のデータ送信を個別に処理するスレッドを開始します。サーバー側データの受信と送信は、上で説明したクライアント側データの送信と導入と同じです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









WindowsServerBackup は、WindowsServer オペレーティング システムに付属する機能で、ユーザーが重要なデータとシステム構成を保護し、中小企業、エンタープライズ レベルの企業に完全なバックアップおよび回復ソリューションを提供できるように設計されています。この機能を使用できるのは、Server2022 以降を実行しているユーザーのみです。この記事では、WindowsServerBackup のインストール、アンインストール、またはリセットの方法を説明します。 Windows Server バックアップをリセットする方法 サーバー バックアップで問題が発生したり、バックアップに時間がかかりすぎたり、保存されているファイルにアクセスできない場合は、Windows Server バックアップ設定をリセットすることを検討してください。 Windowsをリセットするには

Windows Server のビルド 26040 バージョンのリリースに際し、Microsoft は製品の正式名を Windows Server 2025 と発表しました。 Windows11WindowsInsiderCanaryChannel バージョン build26040 もリリースされました。何年も前に、誰かが Windows NT をワークステーション モードからサーバー モードに変換し、Microsoft オペレーティング システムのさまざまなバージョン間の共通点を示したことをまだ覚えている人もいるでしょう。 Microsoft の現在のバージョンのサーバー オペレーティング システムと Windows 11 には明らかな違いがありますが、詳細に注目する人は、なぜ Windows Server がブランドを更新したのか、

nginx のデフォルト名を変更する方法、少し偽装することも、インストールすることもできますヒント: 通常、変更は nginx がコンパイルされる前に行われます。変更後、コードは次のように再コンパイルする必要があります: scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n

Microsoft はデスクトップ向けの Win11 プレビュー アップデートをリリースしましたが、本日、Windows Server 長期サービス チャネル (LTSC) プレビュー ビルド 25335 もリリースしました。いつものように、Microsoft は完全な変更ログを公開しておらず、対応するブログ投稿さえ提供していません。 Microsoft は、Windows Server プレビュー バージョンの更新ログを Canary チャネル バージョンと同じになるように調整しました。新しいコンテンツが導入されない場合、公式ブログ投稿は投稿されません。 IT Home からのメモ: サーバー ブランドは更新されておらず、プレビュー バージョンではまだ Windows Server 2022 です。さらに、Microsoft では、これらのバージョンを、すでに市場に出ている Windows バージョンではなく、Windows Server vNext と呼んでいます。

IT House は 3 月 14 日、デスクトップ向けの Windows 11 Build 26080 プレビュー アップデートに加えて、Microsoft が Windows Server Build 26080 プレビュー アップデートもアップデートして開始したと報じました。次期 Windows Server Long Term Servicing Channel (LTSC) の最新プレビュー バージョンとして、Windows Server Build 26080 は Data Center Edition と Standard Edition を提供し、ユーザーはデスクトップ エクスペリエンスと Server Core インストール オプションを選択できます。このリリースには、コンテナー ホスト用の年次チャネルと、仮想マシン評価専用の Azure リリースも含まれています。 IT House は、X ソーシャル メディアにクエリを実行します。ユーザー フィードバックは、右下隅にある [Copilot] ボタンをクリックします。

サーバーのマッチング ロジック nginx がリクエストを実行するサーバー ブロックを決定するとき、主にサーバー ブロックの listen フィールドと server_name フィールドに焦点を当てます。listen コマンドの listen フィールドは、サーバー応答の IP とポートを定義します。listen フィールドが明示的に指定されていない場合は、設定されている場合、デフォルトのリッスン 0.0.0.0:80 (ルート) または 0.0.0.0:8080 (非ルート) リッスンは、IP とポートの組み合わせ、単一の IP、デフォルトでポート 80 でリッスンする、単一の IP として設定できます。ポート、およびデフォルトですべての IP インターフェイスでリッスンする unixsocket パス。最後のエントリは通常、異なるポートでのみ使用されます。

まだ完成していない GNOME 3 はもちろん、Ubuntu Server 11.04 をインストールするときにグラフィカル インターフェイスをインストールする必要もないと思われる場合は、 。または、ARCH+GNOME3 でビルドする必要があります。したがって、これ以上読んで時間を無駄にしないでください。 2泊1日かかり、N回再インストールしました。ついに何かが生まれました。簡単ではない。早速、本題に入りましょう: ハードウェア: ThinkPad 1 台(X61 の場合) 2. ブート オプション インターフェイスに入り、USB ブートを選択し、Ubu のインストールを選択します。

ファイアウォール ファイアウォール firewalld サービスには、CLI と GUI の 2 つの動作モードがあります。 iptables と比較して、ファイアウォールは動的更新をサポートし、ゾーンの概念を導入します。つまり、ゾーンとは、ファイアウォールによって事前定義された一連のファイアウォール ポリシーを指します。これにより、これらのポリシーをファイアウォール間で迅速に切り替えることができるため、ファイアウォールの切り替え効率とアプリケーション速度が大幅に向上します。ゾーンのデフォルト ポリシー ルールを信頼すると、ホームへのすべてのパケットが受信トラフィックを拒否できますが、ssh、mdns、ipp-client、および dhcpv6-client サービスは、ホーム ゾーンの内部同等の機能を通過して受信トラフィックを拒否することが許可されます。
