ソケット通信を使用したチャットアプリケーションを作成してみましょう。
演習問題1
本演習では、ソケット通信を使用して、クライアントが送信したメッセージをサーバー経由で他のクライアントに自動で送信する、簡単なチャットアプリケーションを作成します。
完成イメージ
今回作成するアプリケーションは、サーバー側とクライアント側の2つのアプリケーションで構成されます。
「作成するアプリケーション」
サーバーアプリケーション
メイン画面

コントロール
| 名称 | コントロールの種類 | 備考 |
| 固定文字1 | Label | |
| ログメッセージ | ListBox |
要求仕様
1. アプリケーションを起動すると、「ログメッセージ」にサービス開始のメッセージを表示します。
2. 自動でクライアントからの接続待ち状態にします。
3. クライアントから接続されると、接続したクライアントのIPアドレスをログメッセージを表示します。
4. 接続したクライアントのユーザー名を用いて、チャットへの参加メッセージを 全クライアントへブロードキャスト送信 します。
5. クライアントからメッセージを受信すると、受信した内容をログメッセージへ表示します。
6. 受信したメッセージを全クライアントへブロードキャスト送信します。
7. 送信した内容をログメッセージへ表示します。
8. 画面右上の閉じるボタンをクリックすると、ソケット通信を終了し、アプリケーションも終了します。
複数のクライアントがサーバーへ接続できるようにしてください。
クライアントからの接続待ち処理およびメッセージ受信処理は、アプリケーションが固まらないように非同期で実行してください。
クライアントアプリケーション
ユーザーダイアログ

コントロール
| 名称 | コントロールの種類 | 備考 |
| ユーザー名 | TextBox | |
| OKボタン | Button |
メイン画面

コントロール
| 名称 | コントロールの種類 | 備考 |
| 固定文字1 | Label | |
| ユーザー名 | Label | |
| メッセージ | TextBox | |
| 送信ボタン | Button |
要求仕様
1. アプリケーションを起動すると、ユーザーダイアログを表示します。
2. ユーザー名を入力し、「OKボタン」をクリックすると、ユーザーダイアログが閉じます。
3. ユーザーダイアログが閉じると、メイン画面のユーザー名に入力したユーザー名を表示します。
4. 「ログメッセージ」に接続中のメッセージを表示し、サーバーへの接続を自動で開始します。
5. サーバーへの接続が完了すると、「メッセージログ」に接続完了のメッセージを表示します。
6. 「メッセージ」を入力し、「送信ボタン」をクリックすると、サーバーへ送信します。
7. サーバーから受信したメッセージを「メッセージログ」へ表示します。
8. 画面右上の閉じるボタンをクリックすると、ソケット通信を終了し、アプリケーションも終了します。
サーバーへの接続処理およびメッセージ受信処理は、アプリケーションが固まらないように非同期で実行してください。
あなたをプロにすることを約束します。

アルチテックのインターンシップはハイレベル。
現役のシステムエンジニアがマンツーマン指導
市場価値が高い産業系システムエンジニアを目指そう!

