掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バイナリ連結 (ID:91126)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
W2k、VB6でWinsockにて、文字+画像データを受信し表示するプログラムを開発しています。 順調に動作はしていますが、自分で見ても効率が悪いのでご教授ください。 WinSockのDataArrivalイベントで、モジュールレベルの変数mbytRecData()にバイナリデータを連結していき、一定時間後にまとめてバイナリデータを処理します。 Public mbytRecData() as Byte ’受信データ Private Sub wsk_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim bytGetData() As Byte Dim lngI As Long Dim lngNextPosition As Long 'バッファデータの取り出し wskCV2K(Index).GetData bytGetData, vbByte '配列未定義への対策 On Error Resume Next lngNextPosition = UBound(mbytRecData) + 1 On Error GoTo 0 If Err.Number <> 0 Then lngNextPosition = 0 End If On Error GoTo ErrorHandler ReDim Preserve mbytRecData(lngNextPosition + UBound(bytGetData)) For lngI = 0 To UBound(bytGetData) mbytRecData(lngNextPosition + lngI) = bytGetData(lngI) Next lngI End With Exit Sub ErrorHandler: If gblnDebugMode Then MsgBox "WinSock(" & Index & ")の受信時にエラー:" & Err.Description Resume End If End Sub こんな感じです。 当然ですが、For〜Nextの部分で受信データバイトだけ繰り返している分遅いです。 今後、通信データ量が増えた時に、より高速に処理できるようにしておきたく、高速な処理方法があればご教授ください。 何やら、ループなどしなくても1行で解決できそうなんですが、エラーばっかりでTOT
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.