掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
winsockでバイナリ送受信 (ID:78553)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
以前ここのHPで似たような質問があった気がしますが、 問題は受信側がいつ、どのタイミングで受信しているかです。 Winsock1_DataArrival は、データが来たらすぐに呼ばれます。 データが「すべて」きたら。ではありません。 たとえば、"abcdefghijklmn"というデータを送った場合、 "a"が届いたら、「データがきた」となります。 で、Winsock1_DataArrival が呼ばれて、 Winsock1.GetData strReceiveData, vbString, bytesTotal の行までいくまでに、 "bc"が到着してたりします。 (ということはstrRecieveDataには"abc"がはいっています) で、ファイルを開けて 「先頭から(Put #1, ,)」「"abc"を(strRecieveData)」書き込みます。 で、ファイルを閉じます。 同様に次に strRecieveDataに"def"がはいって、 「先頭から(Put #1, ,)」「"def"を(strRecieveData)」書き込みます。 というようなことを繰り返して 最終的には、 mnlというのがファイルに残るというわけです。 前回はバッファについても書いた気がしますが、 それは掲示板の検索でそちらを見てください。 で、端的に言えば、 データが来るたびにファイルを閉じてるのと、 書き込むたびに先頭から書いているのが、 直接的な問題だと思います。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.