くだすれC#(Part2)
■ このスレッドは過去ログ倉庫に格納されています
0464デフォルトの名無しさん
NGNGFTPクライアント作ってるんですが例えば
System.Net.Sockets.NetworkStream NS;
System.IO.StreamReader SR;
NS = TCP.GetStream;
SR = new System.IO.StreamReader(NS,System.Text.Encoding.Default);
string str1;
while (true) {
str1 = SR.ReadLine();
if (str1 == null) { break; }
}
のようにやると読み取る文字が無い場合、SR.ReadLine()はnullを返さず
制御が戻ってきません。
それでNetworkStreamのBeginRead EndReadを使って
AsyncCallback myCallBack = new AsyncCallback(this.OnRecvCallback);
IAsyncResult ar = this.NS.BeginRead(this.buffer,0,this.buffer.Length,myCallBack,null);
ar.AsyncWaitHandle.WaitOne();
str1 = System.Text.Encoding.ASCII.GetString(this.buffer);
public void OnRecvCallback(IAsyncResult ar) {
//
this.NS.EndRead(ar);
}
みたくしたのですが、これでも読み取るバイトが無い場合WaitOne()で止まってしまいます。
何か良い方法は無いでしょうか。
■ このスレッドは過去ログ倉庫に格納されています