2

基本的に私はc#でネットワーキングプログラムを開発しており、ストリームリーダーを使用してサーバーからクライアントに文字列を送信しようとしていますが、非常に奇妙な問題があります。このコードを使用すると...

[サーバ側]

foreach (DataRow row in StocksTable.Rows)
            {
                stocks += row["description"] + "," + row["buy"] + "," + row["sell"] + ",";
            }

[クライアント]

textBox3.Text = streamReader.ReadLine();

...動作しますが、最初の行のみを返します。「\n」を「;」で変更すると たとえば、すべてが 1 行に収まるようにすると、クライアントがクラッシュします。

イテレータを使用してすべての行を出力しようとしましたが、うまくいきません。

おかしく聞こえるかもしれませんが、おそらく簡単な説明があるかもしれませんが、しばらくこれに固執していて、混乱しています。

編集:

私は繰り返してみましたが、これはうまくいきます:

for (int i = 0; i < 5; i++)
            {
                textBox3.Text += streamReader.ReadLine();
            }

(5 は文字列の行数です)

しかし、これはしません:

while (true)
            {
                string s = streamReader.ReadLine();
                if (s != null)
                {
                    textBox3.Text += s;
                }
                else
                {
                    break;
                }
            }
4

2 に答える 2