①研究の背景
・情報通信技術に興味があるから、通信の分野の研究をしたい
・情報技術で通信といえば、ネットワーク技術
・独立しているパソコンを繋いでネットワークを作り、データの送受信をさせる
↑ 上記の動作をするようなプログラムを組む
②仮説と狙い
・パソコンとパソコンを繋いで、ネットワークを作る
・パソコン同士でチャットができれば、通信ができているといえる。
・パソコン同士のデータのやりとりの様子を見ることができる。
③研究内容
男の子と女の子との間で通信を行う
①男の子が女の子宛てのデータをサーバに送信する
②サーバは男の子から受け取ったデータを女の子へ送信する
③女の子がサーバから男の子からのデータを受信する
男の子と女の子から見ると、データが直接送受信されたように見える
→これをチャットアプリで再現する
④技術的知識
ネットワーク
通信ができる範囲
ソケット
外の世界と繋がるための玄関。
ソケットプログラミング
サーバー側とクライアント側のソケットを繋げるためのプログラムを組んでネットワークを構築する方法。
クライアント
パソコン。人。お客さん。
サーバー
いろんなクライアントの情報が入っていて、データの経路制御をしてくれる。
⑤これからの取り組み
ソケットプログラミングをする
<ネットワークが構築される手順>
①サーバー側
ソケットの準備/クライアントの接続を待機
いつクライアントが来ても良いようにあらかじめ準備をしておく。
②クライアント側
サーバーに接続要求
通信をするために、サーバー自分の情報を登録する
→ ソケットを準備し、サーバーに接続を要求する。
③サーバー側
クライアントの接続要求に対して応答/クライアントの割り当て(バインド)
サーバーにクライアントの情報を登録するようなイメージ。
例)□□さんは浜松市○○区△△町に住んでいる
→ 名前と住所を結びつける
→ □□さんにデータを送りたいときに、届ける住所がすぐに分かる様にする
サーバーに登録されたクライアントとは理論上はやりとりができる
→ 同じネットワークに所属していると言える。
④サーバー/クライアント
データの送受信
同じネットワーク上にいるクライアントとは、データの送受信ができる。
クライアントは誰に送れば良いかをサーバーに伝える
→ クライアントは送受信の過程を意識せずに、データのやりとりができる。
→ 直接通信しているように見える
④クライアント
切断する
用が済んだクライアントはサーバーとの接続を切る。
…使わない接続をしていても無駄
⑤サーバー
切断する
クライアントがサーバーと切断したら、サーバーもクライアントの情報を捨てる。
アプリケーションを作成する
・ソケットプログラミングを使ったチャットアプリを作成する
・モバイル版ではなく、パソコン上で使えるアプリケーションを想定している
⑥まとめ
今回の研究で使用する言語はJAVAで統一する
・ソケットプログラミングのためのクラスが用意されている
・GUIの作成もできる(今回は、Swingを使う)
・言語の学習が1回で済む
・どうせなら、使ったことがない言語でやりたい
作るプログラムは、3つ(仮)
・サーバー側の動作
・クライアント側の動作
・チャットアプリ
動作確認
・Linux:ターミナル
・Windows:コマンドプロンプト
(同じプログラムだから、どちらも同じ動作をするはずだけど😓)