本授業は,現在のインターネットを支える技術であるTCP/IPやソケットに関する基礎知識を習得した上で,学生自身がそれらの技術を用いた基本的ネットワークプログラムを開発する能力を身に付けることを目標とする。
概要:
低学年で学んだC言語を用いてソケット通信のプログラムを作成する方法を学ぶ。主にTCPを対象とするが、UDPとの違いや、ユニキャストとマルチキャストの違いなども説明する。授業の後半では、教科書のプログラムを応用し、独自のプロトコルを各自で定義し、それを実装したクライアント・サーバ型のプログラム開発を行う。
授業の進め方・方法:
本授業ではネットワークプログラミングに関する専門用語や基本技術と共に,ネットワークプログラミングに必要なC言語の復習および演習を行う。続いてこれらの技術を用いたソケットプログラムの開発を行い理解を深める。
注意点:
本科目の履修には、4年次のコンピュータネットワークIの履修が必要。
オフィス・アワー(月曜 16:00~17:00)
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
授業ガイダンス |
|
2週 |
ネットワークプログラムの基本構成 |
ネットワークプログラミングの基本構成を理解する。D2:1-3
|
3週 |
ソケット |
ネットワークプログラミングにおけるソケットの役割を理解する。D2:1-3
|
4週 |
ソケット関連システムコール |
ネットワークプログラミングで使用する各種ソケット関連システムコールの役割を理解する。D2:1-3
|
5週 |
ポインタ |
ネットワークプログラミングで必要となるC言語のポインタ操作ができる。D2:1-3, D3:1,2
|
6週 |
ポインタ演習 |
C言語のポインタを用いたプログラムを書ける。D2:1-3, D3:1,2
|
7週 |
構造体演習 |
C言語の構造体を用いたプログラムを書ける。D2:1-3, D3:1,2
|
8週 |
中間試験 |
|
2ndQ |
9週 |
試験問題の解答と解説 |
|
10週 |
分割コンパイルとヘッダファイル |
C言語での分割コンパイルの方法とヘッダファイルの役割を理解する。D2:1-3
|
11週 |
関数引数の値渡しとアドレス渡し |
関数の引数を値渡しにする場合とアドレス渡しにする場合の違いを理解する。D2:1-3
|
12週 |
コマンドライン引数 |
C言語でコマンドライン引数を持ったプログラムの作成方法を理解する。D2:1-3
|
13週 |
関数作成演習 |
C言語で関数(サブルーチン)を作成できるようになる。D2:1-3, D3:1,2, E3:1-3
|
14週 |
アドレス構造体,エンディアン |
ソケット通信で用いられるアドレス構造体の内部構成と値の指定方法を理解する。また,エンディアンの違いを説明できる。D2:1-3
|
15週 |
アドレス構造体とシステムコール |
アドレス構造体を引数にとる関数の呼び出し方法を理解する。D2:1-3
|
16週 |
試験問題の解答と解説 |
|
後期 |
3rdQ |
1週 |
文字列処理 |
C言語における文字列の表現方法を理解する。D2:1-3
|
2週 |
文字列処理 |
C言語で文字列処理を行う場合に,配列を使う方法とポインタを使う方法の違いを理解する。D2:1-3
|
3週 |
文字列処理演習 |
C言語を用いて文字列を処理するプログラムが書ける。D2:1-3, E3:1-3
|
4週 |
文字列処理演習 |
C言語を用いて文字列を処理するプログラムが書ける。D2:1-3, E3:1-3
|
5週 |
プロセスの状態遷移 |
ソケット通信実行時のプロセスの状態遷移を理解する。D2:1-3
|
6週 |
クライアントプログラム |
クライアントプログラムの構成と挙動を理解する。D2:1-3, E3:1-3
|
7週 |
サーバプログラム |
サーバプログラムの構成と挙動を理解する。D2:1-3, E3:1-3
|
8週 |
中間試験 |
|
4thQ |
9週 |
試験問題の解答と解説 |
|
10週 |
ネットワークプログラミング演習 |
TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
|
11週 |
ネットワークプログラミング演習 |
TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
|
12週 |
ネットワークプログラミング演習 |
TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
|
13週 |
ネットワークプログラミング演習 |
TCPソケットを用いたネットワークプログラムを書くことができる。D2:1-3, E3:1-3
|
14週 |
マルチキャストとブロードキャスト |
ユニキャストと,マルチキャスト/ブロードキャストの違いを理解する。D2:1-3
|
15週 |
UDPプログラミング |
TCPとUDPの違いを理解する。また,UDPを用いたプログラムの挙動を説明できる。D2:1-3
|
16週 |
試験問題の解答と解説 |
|