したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

VB2005のSocket通信サーバーの複数クライアントについて

16たけ:2010/09/29(水) 17:52:46
以下の処理で一応解決はできました。

OnReadComplete の処理内で以下のようにSleep後にnetworkStream.DataAvailable
の値をチェックし、データを再取得するように致しました。


'受信バイト数が返る
Dim bytesRead As Integer = networkStream.EndRead(ar)

If bytesRead > 0 Then
'受信文字が有った
'受信部分だけ切り出す
Dim getByte As Byte() = New Byte(bytesRead - 1) {}
For i As Integer = 0 To bytesRead - 1
getByte(i) = buffer(i)
Next


''ここを追加 ↓↓↓↓↓
Thread.Sleep(300)
Do While networkStream.DataAvailable = True

Dim sbuffer = New Byte(9000) {}
Dim sLen As Integer

sLen = networkStream.Read(sbuffer, 0, sbuffer.Length)

ReDim Preserve getByte(bytesRead - 1 + sLen)

For ii As Integer = 0 To sLen - 1
getByte(bytesRead + ii) = sbuffer(ii)
Next

Thread.Sleep(300)

Loop
''追加終了 ↑↑↑↑↑


こんな対応で問題ないでしょうか?


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板