C/C++によるファイル送受信プログラムの書き方を教えて下さい.
私のやりたい事は,クライアントがファイルを,サーバにアップロードすることをC/C++で実現することです.
-----
OS:CentOS 6.5
コンパイラ:GCC 6.1
開発言語:C++
プロトコル:TCP, IP
役割:
クライアント(CentOS):ファイルをサーバへ送信.
(送信元ファイル:/home/client/upload/hogehoge.txt)
サーバ(CentOS):クライアントから送られてきたファイルを受信.
(受信ディレクトリ:/home/server/download/)
-----
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
・サーバ
socket()で待ち受けソケット作る
bind()で待ち受けソケットをバインドしたうえでlisten()
accept()で待ち受け
接続して来たらまずopen()で保存先ファイルを開く
データが終わるまでループ、read()で接続ソケットから読んでwrite()でファイルに書き込む
接続ソケットとファイルをclose()
待ち受けに戻る
※複数同時進行できるようにするならfork()とかpthread_create()とかで並列実行
・クライアント
open()でファイルを開く
socket()でソケット作る
connect()でサーバにつなぐ
ファイルの最後までループ、read()でファイルから読んでwrite()でソケットに書き込む
ソケットとファイルをclose()
おしまい
通信プログラムを書こうという人なら、省略した細かいところは普通に書けるでしょう。
プロトコル的にファイル名をクライアントからサーバに通知するなら、最初にその通信ですね。
No.4
- 回答日時:
全くの手作りでファイル転送やりたいって話なのかな?
boostとかいろんなライブラリにそのてのネットワークライブラリ
があるし、できあいのFTPサーバ+手作りFTPクライアント
という手もあります。
No.3
- 回答日時:
C言語になりますが以下の書籍を参考してはいかがでしょうか?
TCP/IPソケットプログラミング C言語編 価格1944円
amazonの以下のサイトで販売しています。
https://www.amazon.co.jp/TCP-IP%E3%82%BD%E3%82%B …
中古品でもよければ更に安い価格で入手可能です。
私もこの本を持っていますが、やりたいことが簡潔に書かれていますので非常に参考になりました。
No.2
- 回答日時:
質問が抽象的すぎるんじゃないですかね?
とりあえずTCP通信に関しては「Linux TCP socket通信 プログラム サンプル」で検索すれば
それなりにいろいろと見つかると思います。
まぁ、注意点としては…それで作ったプログラム(サーバプログラム)を実行している側で、ちゃんとポート開けないとダメだよ?とか。
極論かましていいんならsystem()でscpでもコールする。
とかも有りですが。
No.1
- 回答日時:
・ローカル側
1. ファイルからデータを読み込む
2. そのデータをリモートに送る
・リモート側
1. データをローカルから受け取る
2. そのデータをファイルに書き込む
リモート側で書き込むファイルの名前をどうするかは知らん. そして, 「データのやり取り」つまり上の「ローカル側」の 2 と「リモート側」の 1 は前の質問 ( https://oshiete.goo.ne.jp/qa/9409345.html ) で「見つかった」とかいう「C言語によるネットワークプログラミングの書籍・Webサイト」に書いてあるはず. 一方その他の部分はネットワークに関係ないし「ネットワークを介してデータを送る」などという頭痛の痛い面倒なことを始めるよりも前に理解できているはず.
さて, いったい何がわからないというんだい?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- C言語・C++・C# C言語について教えて欲しいです。 ファイルの中身をコピーするプログラムを作ってます aというファイル 7 2022/11/03 19:21
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
- Visual Basic(VBA) Excel VBA リンク更新について A、B、Cのファイルかあります。 (Aファイルのリンク元Bフ 1 2022/09/21 13:40
- C言語・C++・C# C言語で移動平均のプログラムを作りたいのですが、数値をファイルから取ってきて計算をするプログラムはど 1 2022/09/29 01:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】取り込んだファイ...
-
VBAで、JPG写真の撮影日時を読...
-
RPGでメッセージファイル利用
-
サイトマップにサブドメインを...
-
VB2008 iniファイルの全セクシ...
-
Eclipseで検索ができなくなった
-
openglで音楽を再生する
-
C++.NET 2003 「空のドキュメ...
-
エディットボックスの内容をテ...
-
0バイトのテキストファイル
-
「Active X Inet」と「WinInet...
-
インタープリンタとファイルコ...
-
VBS ファイルマージ処理
-
画像ファイルに拡張子がjpgのフ...
-
フリーで最適なXMLエディタを探...
-
2GB以上のファイルを扱う方法
-
CSVファイルの時刻の形式について
-
accessでクエリをExcelにエクス...
-
テキストボックスから読み取り判断
-
MT-4トレード結果をエクセルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】取り込んだファイ...
-
0バイトのテキストファイル
-
VBAで、JPG写真の撮影日時を読...
-
HTMLテキストリンクでExcelファ...
-
Eclipseで検索ができなくなった
-
VB6.0のメモリリークについて
-
main関数のコマンドライン引数...
-
2GB以上のファイルを扱う方法
-
サイトマップにサブドメインを...
-
ファイル更新日取得
-
ファイル作成日時と更新日時を...
-
エディットボックスの内容をテ...
-
【VBA】印刷マクロのループ処理...
-
<input type="file" で初期値...
-
【VBA】複数CSVの特定範囲を1つ...
-
C++によるファイル送受信プログ...
-
GetOpenFileName()について
-
VB2008 iniファイルの全セクシ...
-
IMEのモードを強制的に変えるには
-
ファイル内容を比較する方法
おすすめ情報