質問: rs-232cで接続したpc間のファイル転送 環境 [xp vb6.0] お世話になります。 rs-232cのクロスケーブルで2台のpcを接続し、一方のpcにあるファイルをもう一方のpcに送信し、受信したファイルを保存するというプログラムを作成しないといけません。 現状、フォーム上でコモンダイアログによりファイルを選択し、選択したファイルが、フルパスでテキストボックスに表示されます。 送信ボタンをクリックするとファイルの送信処理を開始し、受信側は受け取ったファイルを保存するという流れを作りたいのです。 しばらく調べたのですが、なかなかクリティカルする回答を見つける事が出来なかったので質問させていただきます。 もうこのような転送手段は使わないと思いますが・・・。 mscommコントロールを使用し、文字の送受信程度であればできたのですが、mscommではファイル転送はできないのでしょうか? 送信側、受信側のプログラムをご教授いただければと思います。 つたない文章で申し訳ありません。 よろしくお願いします。
回答: >この記述で、バイナリモードで開いたファイルを >あたかもコピーしたかのような形で、別のファイルとして書き込む事が出来ますが、 >このbytbufall()の内容を転送し、putステートメントを受信側で行うと言う考え方で >間違いないでしょうか? 微妙にちがう気がします。 putはファイルへの出力ステートメントですから、「受信側でおこなう」ものではありません。 つまり、putに相当する全バイト送信関数を「送信側pc」で実装し、 加えて、これを受信してファイルに落とす受信関数を「受信側pc」に 実装する必要があります。 提示されているプログラムではbytbufallの最大数が指定されていないので プログラム的にもまずいとおもいます。 あえてこれを利用するならlofでファイルのサイズ分を得て redimするのが定石かな。 そのあと、よみだされたbytbufallを1バイトづつmscommに送出するのを 繰り返せばよいとおもいます。 受信側にそれなりの速度があって、受信バッファももっているようなら 数十バイトづつおくるのもありかとおもいます。 ただ、受信側ではファイルの終端であることが認識できませんから 前述のように、ファイル終端をなんらかの形で伝えられていること が前提ですし、通信途絶などの不慮の状態を検出できるように プログラム構造を考えておくことが必須です。