Visual Studio 技術解説

応答演習問題2 ― C#チャットアプリケーション

ソケット通信を使用したチャットアプリケーションを作成してみましょう。


演習問題1

本演習では、ソケット通信を使用して、クライアントが送信したメッセージをサーバー経由で他のクライアントに自動で送信する、簡単なチャットアプリケーションを作成します。

完成イメージ

今回作成するアプリケーションは、サーバー側とクライアント側の2つのアプリケーションで構成されます。

「作成するアプリケーション」

サーバーアプリケーション

メイン画面
コントロール
名称コントロールの種類備考
固定文字1Label
ログメッセージListBox
要求仕様

1. アプリケーションを起動すると、「ログメッセージ」にサービス開始のメッセージを表示します。

2. 自動でクライアントからの接続待ち状態にします。

3. クライアントから接続されると、接続したクライアントのIPアドレスをログメッセージを表示します。

4. 接続したクライアントのユーザー名を用いて、チャットへの参加メッセージを 全クライアントへブロードキャスト送信 します。

5. クライアントからメッセージを受信すると、受信した内容をログメッセージへ表示します。

6. 受信したメッセージを全クライアントへブロードキャスト送信します。

7. 送信した内容をログメッセージへ表示します。

8. 画面右上の閉じるボタンをクリックすると、ソケット通信を終了し、アプリケーションも終了します。

複数のクライアントがサーバーへ接続できるようにしてください。

クライアントからの接続待ち処理およびメッセージ受信処理は、アプリケーションが固まらないように非同期で実行してください。

クライアントアプリケーション

ユーザーダイアログ
コントロール
名称コントロールの種類備考
ユーザー名TextBox
OKボタンButton
メイン画面
コントロール
名称コントロールの種類備考
固定文字1Label
ユーザー名Label
メッセージTextBox
送信ボタンButton
要求仕様

1. アプリケーションを起動すると、ユーザーダイアログを表示します。

2. ユーザー名を入力し、「OKボタン」をクリックすると、ユーザーダイアログが閉じます。

3. ユーザーダイアログが閉じると、メイン画面のユーザー名に入力したユーザー名を表示します。

4. 「ログメッセージ」に接続中のメッセージを表示し、サーバーへの接続を自動で開始します。

5. サーバーへの接続が完了すると、「メッセージログ」に接続完了のメッセージを表示します。

6. 「メッセージ」を入力し、「送信ボタン」をクリックすると、サーバーへ送信します。

7. サーバーから受信したメッセージを「メッセージログ」へ表示します。

8. 画面右上の閉じるボタンをクリックすると、ソケット通信を終了し、アプリケーションも終了します。

サーバーへの接続処理およびメッセージ受信処理は、アプリケーションが固まらないように非同期で実行してください。


次の記事へ

データベースの基礎について、ご説明します。


あなたをプロにすることを約束します。

アルチテックのインターンシップはハイレベル。

現役のシステムエンジニアがマンツーマン指導

市場価値が高い産業系システムエンジニアを目指そう!

インターンシップの募集はこちら

-Visual Studio, 技術解説
-, , ,