タイトル : GetDataとPeekData 投稿日 : 2008/03/26(Wed) 11:32 投稿者 : コーヒーブレイク
いつも大変お世話になっています。 現在VB6_SP6にてサーバークライアントのアプリケーションを作成して いるのですが、以下のことで悩んでいます。 <1>現在ソケット通信の受信処理は以下の手順で行っています。 ・DataArrivalイベント内にてPublic変数に追加(データは全てString型です) ・Connect状態の時のみ起動させてあるタイマーイベント内にて上記 Public変数から順次受信処理を行う。 <2>上記の処理を以下のように変更しようと考えています。 ・DataArrivalイベント内にてPeekDataを利用し1受信分受信が完了したことを 確認し、その分だけGetDataにて取得し受信処理を行う。 1受信処理を行ったらDataArrivalイベントを抜ける。 ここでヘルプの「GetData メソッド (WinSock コントロール)」を参照したところ 解説の欄に、 「通常は、DataArrival イベント内で、その引数 bytesTotal を指定して GetData メソッドを呼び出します。引数 maxlen に bytesTotal より小さい値を 指定すると、残りのデータが失われることを知らせる 10040 番の警告が発生します。」 と記載されています。 ということは<2>の処理に変更すると取りこぼしが発生してしまうのでしょうか? 勘違いしている、あるいは前提条件がある、またはもっといい作り方がある等 アドバイスいただけると助かります。 よろしくお願いいたします。 |