受信したUDPデータを一度に読み込むには

解決


ゆうき  2005-06-04 10:06:22  No: 122257

お世話になってます。
早速ですが、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


ガッ  2005-06-04 11:59:59  No: 122258

見た目は全部読み取っていると見えますが・・(@@
20バイト送っているのにそれ未満の長さが得られると言うことですか?
…UDPならありえないとは思いますが(ぇ


ガッ  2005-06-04 12:02:49  No: 122259

誤爆ですねw;(orz

このサンプルではデータを一度にすべて読み込んでいますので、
> バッファから1バイトずつ読み込んでいるため
という認識は違うと思います。

なので、
> バッファに溜まった20バイトのデータを一度に読み込む
という問題は解決していると思います。

※表示が気に食わないのなら、関数で隠蔽してみては?(ぇ


ゆうき  2005-06-04 19:16:55  No: 122260

ガッ様
いつもご指導ありがとうございます。
今後とも宜しくお願いいたします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加