[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
| |
VB2005のSocket通信の複数クライアントの非同期処理
5
:
igoten
:2011/02/11(金) 10:19:27
bufferに前のデーターが残ってしまう件ですが、調べてみました。
結論から言いますと、私のサンプルプログラムのミスです。
NetworkStream.BeginRead メソッドの2番目の引数 int offsetは
bufferの何処からデーターを格納するかの値です。
つまりデーターが残ってしまうように見えるのはデーターの途中から
格納してしまっているからです。
OnReadCompleteで全てのデーターを読み込んで、bufferの読み込み位置を
0にクリアーする為に
networkStream.BeginRead(buffer, 0, buffer.Length,callbackRead, null);
を入れています。
所が私のプログラムは、OnWriteCompleteの後に
networkStream.BeginRead(buffer, 0, buffer.Length,callbackRead, null);
を入れてしまいました。
これは誤りです。
何故なら私のプログラムは送信はボタンで任意の時にデーターを送る
仕様になっています。
従って、データー受信中に送信のボタンを押すと、読み込みバッファが
クリアされて途中からデーターを格納しはじめてしまいます。
従って正しくはひろさんのおっしゃる通りOnWriteCompletメソッドの中の
networkStream.BeginRead(buffer, 0, buffer.Length,callbackRead, null);
は不要と言うか入れてはいけませんでした。
サンプルプログラムは時間を見て訂正しておきます。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板