C#,ソケット通信

ちょっと躓いたので覚え書き
C#でのサーバサイドのソケット通信


tcpListener = new TcpListener(IPAddress.Any, port);
tcpListener.Start();
TcpClient client = tcpListener.AcceptTcpClient();

// buffStream = new BufferedStream( client.GetStream() );   // ダメ
streamReader = new StreamReader(client.GetStream());
streamWriter = new StreamWriter(client.GetStream());

string receiveStr = streamReader.ReadLine();  // 受信

最初,NetworkStreamはバッファを持たないというのでBufferedStreamで包んでからStreamReader,Writerに渡したところ,2回送らないとStreamReader.ReadLine()が動かないようになった.
よくよく調べるとStreamReader自体がバッファを持ってるみたいで,BufferedStreamのバッファと重複して動作がおかしくなったみたい.

http://msdn.microsoft.com/ja-jp/library/yhfzs7at.aspx
このコンストラクターは、UTF8Encoding へのエンコーディングを初期化し、stream パラメーターを使用して BaseStream プロパティを初期化し、内部バッファー サイズを 1,024 バイトに初期化します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください