- ... かい説明は行なわないので,予め指定の教科書
![[*]](footnote.png)
- 「すべて
の人のためのJavaプログラミング(第二版)」(立木秀樹,有賀妙子)
http://www.i.h.kyoto-u.ac.jp/~tsuiki/java-everyone/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
名
![[*]](footnote.png)
- より正確には,これらはドメイン名とホスト名の組合せである.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...ダウンロードしたサンプル
![[*]](footnote.png)
- サンプルプログラムのダウンロードについ
ては本資料1.3章を参照
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
構造や通信手段などを意識する必要はない
![[*]](footnote.png)
- OSI参照モデルのようなネッ
トワークの階層構造を考えるならば,ソケットはHTTPやSMTPなどのアプリケーショ
ン層とTCPなどのトランスポート層の仲介をするものと思える.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ダウンロードしたサンプル
![[*]](footnote.png)
- サンプルプログラムのダウンロードについ
ては本資料1.3章を参照
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...client.cを自分の作業ディレクトリ
![[*]](footnote.png)
- この後の課題はこれらのサンプルコードを変更していくことになる.
課題毎のディレクトリを作成して,各課題のソースファイルを区別できる
ようにしておくことを強く勧める.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...IPアドレスを指定してもよい
![[*]](footnote.png)
- client.c 中のgethostbyname関数は,引数として IPアドレス(例えば192.168.1.1 とい
う形の文字列)を取ることもできるので,clientの引数として IPア
ドレスをそのまま渡しても正常に動作する.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... の通信を試してみよ
![[*]](footnote.png)
- 現在,演習室のUbuntu端末間では,30001-30100番ポー
トのみ通信が可能になっているので,その範囲のポートを利用すること
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
している
![[*]](footnote.png)
- send(ns, str, len, flag)のlenは実際に送信す
る文字列長であり,strの終端文字までの長さがlenよりも短い場合,
終端文字も含めて長さlenだけのデータを送信する.fgets(buf,
len, fp)のlenは,取得する文字列の「最大長」であり,もしそのサイズ
に達するよりも先に改行文字などの終端文字が来た場合は,その終端文字までの
文字列をbufに格納する.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... RFC2616
![[*]](footnote.png)
- http://www.ietf.org/rfc/rfc2616.txt
(日本語訳はhttp://www.studyinghttp.net/cgi-bin/rfc.cgi?2616
).ただしBNFの表記はRFC2068 (
http://www.ring.gr.jp/pub/doc/RFC/rfc2068.txt)に準じている.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...CRLFは改行コード
![[*]](footnote.png)
- message-body 部以外では,プロトコル上,
改行コードは CR LF であるので,UNIX 系の OS の場合,単に printf("...
\
n")ではなく,printf("...
\
r
\
n") とするのが正しい.ただし,
DOS/Windows 系の OS では,アスキーモードにすると,"
\
n"
を指定するだけで,CR LF が出力される.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
この返り値を用いて役割を割り当てることができる
![[*]](footnote.png)
- 子プロセスのプロ
セスIDは,wait システムコールを使う場合などに利用するが,この実習で
は使わない.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ダウンロードしたサンプル
![[*]](footnote.png)
- サンプルプログラムのダウンロードについ
ては本資料1.3章を参照
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...mainメソッドが実行される
![[*]](footnote.png)
- gccが生成する実行ファイル
とは異なり,Javaのクラスファイルを直接実行することはできず,Java仮
想マシン(JVM)上で実行される.javaコマンドはクラスファイ
ルをJVM上で実行するためのコマンドである.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... されている
![[*]](footnote.png)
- Cの場合とは異なり,args[0]は1つ目の引数であっ
てコマンド名ではない.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
であるが,それぞれのオブジェクトごとに独自の値を持っている
![[*]](footnote.png)
- staticが指定されている場合は,オブジェクト毎の値は持たず,クラスで一つの
値を持つ.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... プログラミング(第二版)」(立木秀樹,有賀妙子)
![[*]](footnote.png)
- http://www.i.h.kyoto-u.ac.jp/~tsuiki/java-everyone/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...Patternクラスの仕様
![[*]](footnote.png)
- http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/regex/Pattern.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ダウンロードしたサンプル
![[*]](footnote.png)
- サンプルプログラムのダウンロードについ
ては本資料1.3章を参照
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...readLineはストリームから1行を読み込むメソッドである
![[*]](footnote.png)
- Cの
fgetsと似ているが,readLineの返値は終端の改行文字などを含まないことに注意.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...gdbを使って,サンプル
![[*]](footnote.png)
- サンプルプログラムのダウンロードにつ
いては本資料1.3章を参照
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...upコマンドで,フレーム
![[*]](footnote.png)
- (関数)フレームとは,
各関数呼び出し時の情報を確保しておくメモリ(スタック)上の領域のことで,
呼び出された関数本体の実行中に参照される実引数や局所変数の情報が格納され
ている.この例では,最初にswapが呼び出されている停止地点でのフレー
ムから,そのswapの呼び出し元であるfのフレームに移動している.
フレームの状態は,swapを呼び出す直前の状態である.詳細は「コンパイ
ラ」の講義で解説される(はず).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... gdbとすればよい
![[*]](footnote.png)
- Optionキーを押しながらx(または,Escを押してからx)を押すと,ミニバッファにM-xと表示され,入力待ちになる.ここ
で,gdbと入力してリターンキーを押す.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.