相关疑难解决方法(0)

使用\ r作为行终止符时,StreamReader.ReadLine无法通过TCP工作

当我仅用\r作行终止符时,该StreamReader.ReadLine()方法不起作用.它可以使用Environment.NewLine,\r\n或者\ra("a"是任何字符).这是一个错误吗?使用MemoryStream而不是NetworkStream时不会发生同样的问题.如果我无法更改协议,我可以使用哪些变通方法?

我的服务

Thread service = new Thread((ThreadStart)delegate
{
    TcpListener listener = new TcpListener(IPAddress.Loopback, 2051);
    listener.Start();
    using (TcpClient client = listener.AcceptTcpClient())
    using (NetworkStream stream = client.GetStream())
    using (StreamReader reader = new StreamReader(stream))
    using (StreamWriter writer = new StreamWriter(stream))
    {
        writer.AutoFlush = true;
        string inputLine = reader.ReadLine(); // doesn't work - freezes here
        writer.Write("something\r");
    }
});
service.Start();
Run Code Online (Sandbox Code Playgroud)

我的客户

using (TcpClient client = new TcpClient("localhost", 2051))
using (NetworkStream stream = client.GetStream())
using (StreamWriter …
Run Code Online (Sandbox Code Playgroud)

.net c# networkstream readline streamreader

3
推荐指数
1
解决办法
5236
查看次数

标签 统计

.net ×1

c# ×1

networkstream ×1

readline ×1

streamreader ×1