PPTX

TCP/IPによるチャットプログラム
薄井 秀晃
基礎知識編 TCP/IPとは?
IPとは・・・
Internet Protocol の略称であり通信方法の技術的なルールであ
り、実際にデータを送受信する前にデータを小さなデータに分割し、
それに発信元と受信先のIPアドレスを付加させて封筒みたいにす
ること。この時に中身のデータが欠けて送られていたとしてもその
ままである。
IPアドレスとは・・・
インターネット上における住所のようなもの
• TCPとは・・・
Transmission Control Protocolの略称であり、通信相手の状況を
確認して接続を確立し、データの伝送が終わると切断するという
手順を踏む。また、相手が確実にデータを受け取ったかを確認し
たり、データの欠落や破損を検知して再送したり、届いたデータ
を送信順に並べ直したりといった制御を行う。そのため、信頼性
は高く、速度は遅い。
• UDPとは・・・
User Datagram Protocolの略称であり、TCPとは違い、データ
の再送や順番の確認などは行わず送りっぱなしにすること。
• IPとUDPの違い
IPは相手のマンション(PC)まで届けることができるが部屋(プログ
ラム)まで届けることができない。しかし、UDPとTCPは部屋まで届
けることができる。そこで必要になるのが、ポート番号。
• ポート番号とは
コンピュータがデータ通信を行う際に通信先のプログラムを特定す
るための番号のことである。
TCP/UDPの違い
プロトコル
TCP
UDP
通信方式
コネクション型
コネクションレス型
信頼性
高い
低い
転送速度
低速
高速
主な用途
Webの閲覧、メールの送受信、ファイル転送、共有
音声通話、Videoストリーミング、マルチキャスト通信
・ コネクションの確立、維持、切断
主な特徴
・ 順序制御、再送制御、ウィンドウ制御、フロー制御
・ 信頼性がない (パケットロスしても再送しない等)
本題
今回の仕様では、サーバーを1つ立て、クライアントがサーバー
にアクセスし、サーバーを通してチャットを行う。クライアントは
サーバーのIPアドレスとポート番号を指定して、通信を行う。また
基本的には、予め決めておいた合言葉を使い、ユーザーからの
合言葉を受けて、決められた内容のことを実行して、ユーザーに
情報を返す。
チャットプログラムができること
1. 部屋を作り複数人で文字を入力し会話ができる。
2. 部屋の中で個人宛ての会話をすることが可能(他の
人には見えない)
3. 部屋に鍵を設定し特定のメンバーでのみ会話が可能
4. 部屋にいるメンバーを部屋に入らずに確認できる
Chat プログラム
GUI設計をしており、7つのファイルから構成されています。
2つはインターフェースで、残り5つは
1. Main
2. Name
3. Room
4. EnterKeyRoom
5. CreateKeyRoom
• Main
チャットをする上で根幹となるもの
会話画面や、部屋のリスト、ユーザーのリスト等のGUI
Serverとのやりとりをする送受信プログラム
• Name
名前を設定、更新する時に表示されるウインドウ
• Room
鍵なしの部屋を作成する時に表示されるウインド
ウ
• EnterKeyRoom
鍵の設定されている部屋に入室する際に表示さ
れるウインドウ
• CreateKeyRoom
鍵付きの部屋の作成をするときに表示されるウイ
ンドウ
Server プログラム
サーバーが管理していること
1. 部屋の名前
2. 部屋にいるユーザー名
3. 部屋の鍵
決められたメッセージの内容の実行や鍵の確認等を行う
実演
総括
ゼミで行ってきたプログラム作成を活かし、GUIのチャッ
トプログラムの作成にとりかかるきっかけを作ることが出
来ました。
工夫した点としては、オブジェクト指向を意識して、作成
を行い新たな機能を追加する際に容易にできるように作
成を行いました。そのため、プログラムが予想をしていた
よりも長くなり苦労しました。
今後の課題として、文字だけでなく、画像や動画などを
送る機能の実装が考えられます。