Download presentation
Presentation is loading. Please wait.
Published byよしお かやぬま Modified 約 7 年前
1
担当:青木義満 yaoki@sic.shibaura-it.ac.jp
情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
2
FTP(File Transfer Protocol)とは?
インターネット初期の頃から存在するプロトコルで、今でもインターネットでよく使用されるプロトコルの1つである。プロトコル上は任意のホスト間のファイル転送を行うことが可能であるが、通常は接続したクライアントとサーバ間の転送に利用される。 詳細は下記を参照
3
ストリームソケットを使った仮想FTPの実現1
異なるホスト間で、テキスト(ASCII)ファイルを送信・受信してみよう。 処理の手順 サーバーを受信側(inet_server_ftp.c)、クライアントを送信側(inet_client_ftp.c) とする。 従来の方法で、サーバー、クライアント間でストリームソケットを使い、コネクションを確立 クライアントから、サーバー側へ送信するファイル名を送る(コマンドライン引数で与えている) サーバー側はこれを受信し、新規ファイルとしてfopen クライアントでファイルの中身をファイルの終端まで読み込み、ソケットを通して送信 サーバー側はこれを受信し、ファイルに書き込む まずは自分でやってみる。その後、友達とホスト名、ポート番号を共有し、 ファイルの送信テストを行ってみる。
4
ストリームソケットを使った仮想FTPの実現2
異なるホスト間で、バイナリファイルを送信・受信してみよう。 基本はテキスト版と同様。 ファイルからのデータの読み書きに、fread(), fwrite()を使用。 fopenの引数を”r”, ”w” から ”rb”, “wb”に変更(バイナリモード)。 送信側(inet_client_ftp_bin.c): char型のバッファー1つを用意し、sizeof(char)単位(1byte)で1つずつfread()でファイルからデータを読み出して、ソケットにwrite() 受信側(inet_server_ftp_bin.c) char型のバッファー1つを用意し、sizeof(char)単位(1byte)ずつread()でソケットからデータを読み出して、ファイルにfwrite()でsizeof(char)単位(1byte)で1つずつ書き出し 注意!: テキスト版のプログラムのwhileループ内のprintfはテキストデータ表示用なので削除すること! 実行: 適当なバイナリファイル(*.pdf や画像ファイルなど)を送受信。
5
ファイル操作関連関数 バイナリデータの入出力 fgets ファイルからの一行単位での文字列読込
fputs ファイルへの一行単位での文字列書込 fread ファイルからのバイナリデータの読込 fwrite ファイルへのバイナリデータの書込 関数の仕様は以下のページ参照 バイナリデータの入出力
6
メール題目:system11 学籍番号 苗字(すべて半角英数)
バイナリ版FTPプログラム課題の提出 期限:12/18 10:40まで 送信ファイル: inet_server_ftp_bin.c 及び inet_client_ftp_bin.c メール題目:system11 学籍番号 苗字(すべて半角英数)
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.