Как оставить порт 23 Telnet открытым, чтобы продолжить чтение данных в форме окна C #

Попробуйте:

<([^\s]+)(\s[^>]*?)?(?<!/)>

Он похож на ваш, но последний > не должен быть после косой черты, а также принимает h1.

0
задан NewCoder 18 January 2019 в 13:14
поделиться

1 ответ

Так что вам нужно будет где-то зациклить, чтобы ваша программа продолжала проверять поток. Обычно проще всего было использовать булевы индикаторы, поэтому перечислим это так:

Boolean openConnection = false;

Это должно быть на уровне класса. Затем внутри вашего метода подключения вы зацикливаетесь и слушаете. Примерно так.

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 секунды.

Это грубое начало, но я надеюсь, что оно даст вам представление о том, в каком направлении вы должны это делать.

0
ответ дан SamuelWarren 18 January 2019 в 13:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: