お世話になってます。
早速ですが、Winsockで受信したバイナリデータをリストボックスに
表示するという処理を行おうとしてるのですが、受信バッファ内の
データを一度に読み込む方法がわからず苦戦しております。
受信データは固定長で20バイトのデータです。
以下に示すコードですと、それなりに期待しいる結果は得られるのですが、
バッファから1バイトずつ読み込んでいるため効率が悪いように思えます。
バッファに溜まった20バイトのデータを一度に読み込むためにはどの
ようなコードを記述すればいいのでしょうか?
ご指導の程、何卒宜しくお願いいたします。
(Winsockに関する過去ログは一通り読みましたが解決できませんでした)
環境は、WindowsXP,VB6(SP6)です。
'受信処理
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim RevData() As Byte
Dim Rdat As Variant
Dim Log_Data As String
Winsock1.GetData RevData '相手データの受信
For Each Rdat In RevData
Log_Data = Right$("00" & Hex$(Rdat), 2)
Lst_Rd.AddItem Log_Data '受信データを表示
Next
End Sub
見た目は全部読み取っていると見えますが・・(@@
20バイト送っているのにそれ未満の長さが得られると言うことですか?
…UDPならありえないとは思いますが(ぇ
誤爆ですねw;(orz
このサンプルではデータを一度にすべて読み込んでいますので、
> バッファから1バイトずつ読み込んでいるため
という認識は違うと思います。
なので、
> バッファに溜まった20バイトのデータを一度に読み込む
という問題は解決していると思います。
※表示が気に食わないのなら、関数で隠蔽してみては?(ぇ
ガッ様
いつもご指導ありがとうございます。
今後とも宜しくお願いいたします。
ツイート | ![]() |