21.8.10 miniProject
JAVAネットワークの例
参考になるところ
JAVA多室構造
Javaクライアントサーバモデル
TCP
プロジェクトで使用するネットワークモデルはTCP(転送制御プロトコル)ネットワークであり,TCPネットワークではサーバの役割は
1.クライアントが接続を要求したときに接続を受け入れる
2.接続されたクライアントとの通信
1番を担当しているのはjavaですnet.ServerSocketクラス
2番を担当しているのはjavaですnet.Socketレベルです
ここで、サーバは、バインドポートと呼ばれる接続するポートをクライアントに持たせる必要があります.
サーバは固定ポート番号にバインドされて動作するため、SeverSocketの作成時にポート番号を指定する必要があります.
その後、クライアントとサーバはそれぞれのsocketを使用してデータを交換します.
ServerSocketの作成と接続を受け入れる
サーバを開発するには、まずクライアントの接続要求を受信するサーバソケットが必要です.
ServerSocketの作成とバインドには、大きく3つの方法があります.
accept()メソッドは、クライアントが接続を要求する前にブロックされる.
クライアントが接続要求を発行すると、accept()はクライアントと通信するsocketを作成して返します.これが接続の受け入れです.
プロジェクトで実装するネットワーク構造はマルチチャンバ構造であり、サーバは常にクライアントの接続要求を待つ必要がある.したがって,クライアントとの接続要求とI/O要求,サーバと接続したクライアントの情報送受信を管理するには2つのクラスが必要である.
複数のファイルルームのクラスを管理するには、個別に作成する必要があります.
1.サーバに接続されているクライアント
クライアントがサーバに接続要求を発行すると、クライアントとサーバが作成したソケットが接続されて接続されます(ID->ニックネーム)ログインが完了したクライアントは、サーバに接続されているすべてのクライアント(.add()に追加されます.
参考になるところ
JAVA多室構造
Javaクライアントサーバモデル
TCP
プロジェクトで使用するネットワークモデルはTCP(転送制御プロトコル)ネットワークであり,TCPネットワークではサーバの役割は
1.クライアントが接続を要求したときに接続を受け入れる
2.接続されたクライアントとの通信
1番を担当しているのはjavaですnet.ServerSocketクラス
2番を担当しているのはjavaですnet.Socketレベルです
ここで、サーバは、バインドポートと呼ばれる接続するポートをクライアントに持たせる必要があります.
サーバは固定ポート番号にバインドされて動作するため、SeverSocketの作成時にポート番号を指定する必要があります.
ServerSocket() s1 = new ServerSocket(int port);
ServerSocketは、クライアントが要求を発行したときに()を受け入れます.方法で接続を受け入れ、通信のためのsocketを生成する.その後、クライアントとサーバはそれぞれのsocketを使用してデータを交換します.
ServerSocketの作成と接続を受け入れる
サーバを開発するには、まずクライアントの接続要求を受信するサーバソケットが必要です.
ServerSocketの作成とバインドには、大きく3つの方法があります.
//1
ServerSocket s1 = new ServerSocket(int port);
//2
ServerSocket s1 = new ServerSocket();
s1.bind(new InetSocketAddress(int port));
//3. 특정 ip로 접속할 때만 연결 수락을 하고 싶을 때.
ServerSocket s1 = new ServerSocket();
s1.bind(new InetSocketAddress("IPAddress", int port));
これでポートバインドが完了すると、サーバソケットはクライアント接続を受け入れるためにaccept()メソッドを実行する必要があります.accept()メソッドは、クライアントが接続を要求する前にブロックされる.
블로킹이란 스레드가 대기 상태가 된다는 뜻이다.
ブロックされると、情報更新やイベント処理ができないため、情報更新を行うスレッドやイベント処理を行うスレッドはaccept()メソッドを呼び出すことができません.クライアントが接続要求を発行すると、accept()はクライアントと通信するsocketを作成して返します.これが接続の受け入れです.
try{
Socket socketS1 = serverSocket.accept();
} catch(Exception e){ }
クライアントの接続を受け入れる必要がなくなった場合は、ポートをアンインストールするためにサーバソケットのclose()メソッドを呼び出す必要があります.s1.close();
Project Mainプロジェクトで実装するネットワーク構造はマルチチャンバ構造であり、サーバは常にクライアントの接続要求を待つ必要がある.したがって,クライアントとの接続要求とI/O要求,サーバと接続したクライアントの情報送受信を管理するには2つのクラスが必要である.
複数のファイルルームのクラスを管理するには、個別に作成する必要があります.
1.サーバに接続されているクライアント
クライアントがサーバに接続要求を発行すると、クライアントとサーバが作成したソケットが接続されて接続されます(ID->ニックネーム)ログインが完了したクライアントは、サーバに接続されているすべてのクライアント(.add()に追加されます.
Reference
この問題について(21.8.10 miniProject), 我々は、より多くの情報をここで見つけました https://velog.io/@jslover/21.8.10-miniProjectテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol