如何以C#Windows形式保持telnet端口23的打开状态以继续读取传入的数据

时间:2019-01-17 15:45:17

标签: c# telnet tcpclient

我终于使程序能够按我希望的那样运行,它从每次触发的扫描都从telnet端口读取数据,但是现在我得到的唯一问题是,如果我在控制台中显示数据,则正在读取数据,但是我需要将其显示在我的主显示中,该显示将是一个文本框多行,你能明白我为什么得到这个

@am.filter 'siteAndAssociations', ->
  (sites, text) ->
    query = text?.toLowerCase() || ""

    _( sites ).filter ( site ) ->
      # filter on key
      if site?
        ( _.some [ "name", "comment" ], (key) ->
          site[ key ].includes( query ) if site[ key ]? ) or
            # filter on address
            ( site.address().entered_by_user.toLowerCase().includes query if site.address() and site.address().

这是我添加的错误,它来自ReadWrite方法 enter image description here

1 个答案:

答案 0 :(得分:0)

因此,您必须在某处循环,以使您的程序继续检查Stream。通常最简单的方法是使用布尔指示符,因此可以列出以下内容:

Boolean openConnection = false;

这需要是课程级别的。然后在connect方法内部,循环并监听。像这样的东西。

NetworkStream ns = server.GetStream();
openConnection = True;
            Task.Factory.StartNew(() => 
                {
                    while (openConnection)
                    {
                        ns.Read(data, 0, data.Length);
                        var stringData = Encoding.ASCII.GetString(data, 0, 1024);
                        dataToAdd.Add(stringData);
                        foreach (var list in dataToAdd)
                        {
                            txt_BarcodeDisplay.Text += list + Environment.NewLine;
                        }
                        Thread.Sleep(2000);
                    }
                }
            );

因此,要解压缩的内容很多,但是基本上您是在说,请阅读网络中的内容,直到将openConnection变量设置为false为止。哦,由于我们不想将处理器固定在100%,请休眠线程,以便我们每2秒检查一次。

这是一个艰难的开始,但我希望它能使您对实现此目标的方向有所了解。