オペレーティングシステム2

情報工学科 3年生対象 専門科目
システムプログラミング
第11回
プロセス間通信4
仮想FTPの実現
担当:青木義満
[email protected]
1
FTP(File Transfer Protocol)とは?
• インターネット初期の頃から存在するプロトコルで、今
でもインターネットでよく使用されるプロトコルの1つで
ある。プロトコル上は任意のホスト間のファイル転送を
行うことが可能であるが、通常は接続したクライアントと
サーバ間の転送に利用される。
• 詳細は下記を参照
– http://ja.wikipedia.org/wiki/File_Transfer_Protocol
2
ストリームソケットを使った仮想FTPの実現
異なるホスト間で、テキストファイルを送信・受信してみよう。
処理の手順
• サーバーを受信側(inet_server_ftp.c)、クライアントを送信側
(inet_client_ftp.c) とする。
• 従来の方法で、サーバー、クライアント間でストリームソケットを使い、コ
ネクションを確立
• クライアントから、サーバー側へ送信するファイル名を送る(コマンドライ
ン引数で与えている)
• サーバー側はこれを受信し、新規ファイルとしてfopen
• クライアントでファイルの中身をファイルの終端まで読み込み、ソケットを
通して送信
• サーバー側はこれを受信し、ファイルに書き込む
まずは自分でやってみる。その後、友達とホスト名、ポート番号を共有し、
ファイルの送信テストを行ってみる。
3
ファイル操作関連関数
•
•
•
•
•
fgets ファイルからの一行単位での文字列読込
fputs ファイルへの一行単位での文字列書込
fread ファイルからのバイナリデータの読込
fwrite ファイルへのバイナリデータの書込
詳細は以下のページ参照
– http://www.bohyoh.com/CandCPP/C/Library/in
dex.html
4