tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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>の処理に変更すると取りこぼしが発生してしまうのでしょうか?
勘違いしている、あるいは前提条件がある、またはもっといい作り方がある等
アドバイスいただけると助かります。
よろしくお願いいたします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。