所以基本上我正在用c#开发一个网络程序,我正在尝试使用流阅读器从服务器向客户端发送一个字符串,但我有一个非常奇怪的问题。当我使用这段代码时......
[服务器端]
foreach (DataRow row in StocksTable.Rows)
{
stocks += row["description"] + "," + row["buy"] + "," + row["sell"] + ",";
}
[客户]
textBox3.Text = streamReader.ReadLine();
...它可以工作,但它只返回第一行。当我用“;”更改“\ n”时例如,一切都在一行,客户端崩溃。
我尝试使用迭代器来打印所有行,但它也不起作用。
我知道这听起来很有趣,可能有一些简单的解释,但我已经被困在这一段时间了,我感到很困惑。
编辑:
我尝试迭代,这件事有效:
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;
}
}
答案 0 :(得分:2)
我将假设stocks
是一个字符串。字符串可以包含许多行(定义为由CR,LF或CRLF分隔的字符串的行)。在这种情况下,您似乎使用\n
在字符串中创建多行。那里:
textBox3.Text = streamReader.ReadLine();
将读取流中的第一个行。
答案 1 :(得分:2)
您应该使用StreamReader.ReadToEnd()
来阅读所有行。 ReadNextLine
只会读取一行,并以\n
字符停止。
如果您进行迭代,则应检查是否还有更多内容可用。