• ベストアンサー

テキストファイル( .txt )の送信方法

学校の無線LANに2台のノートパソコンを接続して、データの通信実験のようなことをやろうと考えています。 パソコンAでプログラムを実行し、結果をテキストファイル( .txt形式) に出力。そのテキストファイルを "何らかの方法" でパソコンBに送り、パソコンB側のプログラムでそれを読み取り、実行結果を表示したいと考えています。 プログラムは、C言語でやろうと思ってます。テキストファイルを送るよい方法をご存知でしたら、教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • necomimi3
  • ベストアンサー率40% (124/307)
回答No.1

WINAPIが使えれば簡単にできます。 http://yonex1.cis.ibaraki.ac.jp/~yonekura/2002kadai/lecture03.html 実際にはもっとパッケージ化されたWINAPIがあったと思います。

EC301-2
質問者

お礼

回答ありがとうございます。 WINAPI さっそく使ってみます。

その他の回答 (2)

回答No.3

なるほど、Winなんですか。Windowsだと選択の幅が一気に狭まるんですよね。真面目な実験ならUNIX系のOSを使った方が通信系はやりやすいですよ。 WindowsでCを使って通信するならWinSockを使うのが正攻法で、かついちばん手っ取り早いです。 WinSockが使用する関数はsocketやbindなどと言ったあたり(socket,bindはUNIX用の命令で、WinSockにはそれらに対応する関数があります)で、通信ソフトを実装するなら基本的にはこのレイヤの命令を使います。詳細は検索でどうぞ。 ただ、Cとソケットで真面目に書くと準備に300行くらいは必要なので、面倒と言えば面倒です。PerlやRuby、Java等の適当な上位ライブラリを使用した方がプログラムが圧倒的に短くて済みますので、その辺を探してみる方が楽かも知れません。 探す際の注意点としては、raw socketは避けること、ですね。あとは何を探しても、socketよりは上のレイヤのことをやってるはずです。 とか言ったものの、そもそもWindowsで文書を共有するだけなら、同じ無線LAN上で同じワークグループに属していれば共有フォルダを通じてファイルのやりとりができるんでは。 あとはSkypeとか一般的なメッセンジャーでも出来るし、あえてプログラム書かなくてもいい気がします。

EC301-2
質問者

お礼

回答ありがとうございます。 300行はきついですね…。Javaなどのライブラリとソケットについて検索してみます。あと、共有フォルダについても検討してみます。

回答No.2

補足要求です。 ・OSは何? ・言語はC以外は使う気はない? ・FTPやscp等の、既に存在するアプリケーションやコマンドではいけない? ・どの程度原始的な作業がしたい? ・時間は測定する? Cを使うって言う時点でBerkley Socketを使うだろうなとは思うのですが、もしかしたらそれ以外の方法が適しているかも知れませんので、よろしくお願いしますね。

EC301-2
質問者

補足

回答ありがとうございます。 ・OSは Windows です。 ・言語は何でも良いのですが、CとJava 以外はあまり使ったことがありません。 ・すでに存在するアプリケーションやコマンドでもいいです。パソコンAからパソコンBにテキストファイルを渡すことができれば、大丈夫です。 ・今回は時間の測定は行いません。 ほかに必要な補足がありましたら、遠慮なく要求してください。

関連するQ&A

  • Xcodeで作ったプログラムの出力ファイル(txt形式)が開けない。

    僕は今、学校宿題であるのC言語によるプログラムを、Xcode2.0のstanderd Toolでプログラムを作ったのですが、なぜかそのプログラムで出力される出力ファイル(txt形式)を開こうとすると 「テキストエンコーディングがMacOSXに対応していない」 と言う内容のエラーがでて、標準のテキストエディタで開くことができません。 どうすれば開けるようになるでしょうか? 先生に聞いても「Macさわったことないから分からない」と言われてしまい困っています 僕のMacはiMac Intel Core Duo MA199J/A (1830) OSバージョンは10.4.6です。 プログラムはFileポインタを用いて標準入力したデータをテキストファイルに書き出すと言う内容です。

    • ベストアンサー
    • Mac
  • テキストファイルの引き算

    コマンドプロンプトから2つのファイルを引数指定して片方のみに存在する行を出力する方法を探しております。 (例) A.TXT ---- 111 222 333 444 555 B.TXT ---- 333 111 222 A.TXTからB.TXTを引き算した結果として、以下が出力したく考えています。 --- 444 555 OSはWindowsXPで、バッチファイルやVBスクリプトなど、コマンドラインから実行できる方法を探しています。(出回っているツールで、コマンドラインから実行できるものも可) ご存知の方がいらっしゃいましたら、ご教授ください。 よろしくお願い致します。

  • jarファイルにまとめて他のPCに送るとtxtファイルが読み込まれません

    java言語であるプログラムをつくりました。プログラムを作った方のPC(vista)では、jarファイルを作り、実行させるとしっかり動作するのですが、もう片方のPC(XP)にこれを送り実行させるとテキストファイルを読み込んでくれずエラーが出ます。友達に送っても実行できなかったそうなので、このjarファイルは作ったPCで実行したときだけtxtファイルを読み込むことになります。。。どのPCもjava実行環境はあります。 原因がわかる方がいたら教えてください。>< プログラムの読み込み部分は以下です try{ fin = new BufferedReader(new FileReader("txt/Choice.txt")); fin.close(); }catch(Exception e){}

    • ベストアンサー
    • Java
  • C言語でテキストファイルのデータ処理

    はじめまして。 僕はC言語に関して全くの初心者です。 どうぞよろしくお願いします。 例えば、 1,0,0,7,6 2,0,0,5,5 3,1,0,4,9 : : のようなテキストファイル、test.txtがある時、 1行目の4カラム目(7)と5カラム目(6)を、 それぞれの行について差し引くプログラム、 つまり全ての行について4カラム目は7を引き、 5カラム目は6を引くプログラムの事で、 この例では、 1,0,0,0,0 2,0,0,-2,-1  3,1,0,-3,-3 : : となるようなプログラムを書き、結果を出力したいのですが、よく分かりません。 ちなみにawkで書いて実行すると、 (プログラム名はtest.awkとする) BEGIN{ i=0; } { while(i<1){ v3 = $4; v4 = $5; i++; } print $1,$2,$3,($4 - v3),($5 - v4); } 実行するプログラム↓ awk -f test.awk test.txt という感じなのですが…。 これを上述の様に、C言語でプログラムを書いて、 実行するには、例えばどのようなプログラムを書けば いいのでしょうか? なにぶん初心者のため、分からない事だらけですが、 よろしくお願いしますm(__)m

  • ファイル操作について、テキストファイルの書き換え

    よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

    • ベストアンサー
    • Perl
  • テキストファイルの内容を連結する簡易な方法

    2つのバイナリ形式のデータが出力されたテキストファイル 「C:\a.txt」「C:\b.txt」の中身を結合させて、 1つのファイル「C:\c.txt」にまとめようと思っています。 ファイルパスを指定し、CFile::OpenとCFile::Readで 一つずつファイル内容を読み出し、c.txtに書き出す方法だと少し手間がかかるので、 より簡易な方法で一つのファイルにまとめたいのですが、 何か効率的で良い方法があれば、教えていただけませんでしょうか? 例えば、Linuxでいうcatコマンドのような方法があれば理想的なのですが。。 よろしくお願い致します。 開発環境:VC++2005、MFC

  • エクセルのセルをテキストファイル出力する方法教えてくれませんか。

    初心者ですが、 どなたか、エクセルのセル1つを、 テキストファイル出力できる方法をご存知ですか? 詳細には、 エクセルファイルの列Aの内容がテキストファイル名で、 列Bの内容が本文であるテキストファイル出力を 約3000個、順次したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、 002.txtは本文が「かきくけこ」、 003.txtは本文が「さしすせそ」というように、 エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • テキストファイルの中身について

    あるフォルダしたのテキストファイルとそのファルダしたのフォルダ中のテキストファイルについて、 例えば、”日本”と言う文字が有ったら、そのテキストファイル名を表示するようなの機能を実現したいです。 何を使ったら、いいですか? サンプルが欲しいです。 教えてください!お願いします。 ーーーーーーーーーーーーー temp-------a.txt |------b.txt |------temp1 |--------a1.txt |--------b1.txt       … などなど、 テキストファイルの中身に、”日本”という文字が存在したら、そのテキストファイル名を出力 ーーーーーーーーーーーーー

  • c++でファイル名から数字をテキストファイルに取り

    hogehoge_1_1_1.txt hogehoge_1_2_3.txt というファイル名であった場合、 hogehoge_1_1_1.txtからは1 1 1 hogehode_1_2_3.txtからは1 2 3 というふうにファイル名の他に数値もテキストファイルに出力したい場合どのようにすればできるでしょうか? このように単純な作業なのですが、 このような形式のテキストファイルが大量にあって、まとめて処理してグラフなんかを作成したいために質問させていただきました。 回答よろしくお願いします。 補足 説明が不足していましたが、実行ファイルと同じフォルダに入れたテキストファイル等すべてから、ファイル名を指定しないで数値の部分だけを取り出すようにするにはどうしたらいいかも知りたいです。 分かりにくい説明かもしれませんが、回答よろしくお願いします。

  • diffコマンドにてテキスト出力

    こんばんは。教えてください! 以下のような2つのファイルがあるとします。 ・aaa.txt abc111 abc222 abc333 ・bbb.txt abc333 abc444 これを比較して、比較結果をテキスト出力したいです。 テキスト出力したい比較結果は (1)重複しているもの全てテキスト出力 (2)aaa.txtのみにあるものをテキスト出力 (3)bbb.txtのみにあるものをテキスト出力 また、(1)~(3)は別々のファイルに出力したいです。 diffコマンドで、 diff a.txt b.txt >> c.txt とすると、 1つのテキストファイル(c.txt)に (1)~(3)すべてが書かれてしまいます。 環境は、windows XPにてCygwinを使用しています。 diffコマンドでなくても構いません。 宜しくお願いします。