无法从传输连接(StreamReader)

时间:2017-09-19 14:34:30

标签: c# tcp

我有一个StreamReader侦听IP端口并在线程/循环中运行,这是正常工作(C#,Visual Studio) -

ns = tc.GetStream();
sr = new System.IO.StreamReader(ns);

private void ReceiveData()
        {
            while (true)
            {
                messageId = sr.ReadLine();
                bool flag = messageId.Length <= 31;
                if (!flag)
                {
                    messageId = messageId.Substring(20, 12);
                    m_search.m_queue.add(messageId);
                }
                System.Threading.Thread.Sleep(250);
                flag = true;
            }
        }

我希望发回一些字符,所以我创建了一个StreamWriter(在一个单独的.cs中,所以我必须在第一个.cs中引用底层流变量)

var xs = Socketclient.ns;
                        using (System.IO.StreamWriter sw = new System.IO.StreamWriter(xs))
                        {
                            sw.Write("TH1\r\n");
                            sw.Flush();

                            //Wait 3 secs then deactivate relay
                            System.Threading.Thread.Sleep(3000);
                            sw.Write("TH0\r\n");
                            sw.Flush();
                        }
               }

哪个有效,直到它'返回'(在最后一个sw.Flush();之后)并报告无法从传输连接中读取数据 -

messageId = sr.ReadLine();

我假设我需要在不同的线程中运行StreamWriter,或者在StreamWriter运行时需要某种方式暂停/重新启动StreamReader。

根据各种网站,StreamWriter不应该影响StreamReader,但它完成后似乎关闭了底层流(ns)。

赞赏的想法。

此致

0 个答案:

没有答案