Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2016, 17:06   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию Как проверить, что не так с TCP

ШАГ 1. У меня данные с клиента постоянно передаются. Проверил клиент с классическим сервером - консоль постоянно выводит все новые и новые пакеты. Вроде они совпадают с теми, что передаю. Это около 284000 бит.
ШАГ 2. Я сделал свой сервер. Запустил. Клиент асинхронный.

Давайте подумаем, где может быть подвох.

Сделал глобальную переменную в потоках.
Код:
 if (bytesRead > 0)
            {
                // There  might be more data, so store the data received so far.
                state.sb.Append(Encoding.ASCII.GetString(
                    state.buffer, 0, bytesRead));

                // Check for end-of-file tag. If it is not there, read 
                // more data.
                content = state.sb.ToString();
                if (content.IndexOf("<EOF>") > -1)
                {
                    // All the data has been read from the 
                    // client. Display it on the console.
                    Debug.WriteLine("Read {0} bytes from socket. \n Data : {1}",
                        content.Length, content);

                    SocOut = content;
                    // Echo the data back to the client.
                    Send(handler, content);
                }
SocOut, как я считаю, постоянно получает данные.

В таймере я ее вывожу в свой интерфейс:
Код:
this.Controls["richTextBox2"].Text = SocOut;
У меня разные потоки, а клиент отправляет каждый раз разные данные. Я хочу увидеть в текстовом окне постоянное изменение данных.

В действительности этого не происходит. Добавляю деталей:
В окне отображается SocOut, и я решил сделать отправку данных каждые 5 секунд на сервер. Один раз текстовое окно шквалом наполнились данными. Затем окно как будто замерзло. Но я посмотрел вниз - внизу у меня через каждые 5 сек обновление данных, то есть числа меняются. Вопрос, что именно меняется, и почему именно в конце переменной SocOut? как такое возможно? string SocOut. То есть при каждом приеме туда добавляются данные. Но ведь написал же выше, вроде все по-честному: SocOut = content; то есть всегда SocOut равна контенту, вроде. Ваши предложения?
Чего может не хватать?

Либо скажите, что я могу выложить в этот топик, чтобы можно было разобраться, в чем проблема?

Последний раз редактировалось Krasi; 18.01.2016 в 17:22.
Krasi вне форума Ответить с цитированием
Старый 18.01.2016, 18:14   #2
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Все еще веселее. Я решил Сделать от SocOut
string[] partsSoc = SocOut.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntri es);
Выдает все время разную размерность. Хотя так не может быть судя по данным, которые я получаю в клиенте. Как?
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе? TEIROP Visual C++ 4 08.11.2015 20:19
Как проверить что вернула функция Ka2R Помощь студентам 7 16.03.2015 18:52
как создать TCP клиент, TCP сервер ? DreamMaster911 C/C++ Сетевое программирование 1 26.10.2010 15:05