|
62 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
|
||||||
TCP/IP терминал - найти ошибки в коде17.09.2011, 21:51. Показов 3649. Ответов 12
Метки нет (Все метки)
Решил я создать простейший терминал для общения с сервером по TCP IP и нашарпал такой вот код:
Сервер отвечает OK Всё нормально..... А попытка получить ответ в последующие разы (50 строка) выдаёт ошибку: "FAILSystem.NullReferenceException: В экземпляре объекта не задана ссылка на объект." Как быть ?
0
|
||||||
| 17.09.2011, 21:51 | |
|
Ответы с готовыми решениями:
12
Найти ошибки в коде и исправить эти ошибки (Наследование) Найти ошибки в коде и исправить эти ошибки - C++ Найти ошибки в коде и исправить эти ошибки |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||||||
| 18.09.2011, 12:05 | |||||||||||
|
В строке 32 объявляется новая переменная strReader.
В строке 50 вы пытаетесь использовать объект strReader, объявленный в теле класса, но на момент его использования еще не созданный, о чем вам студия и говорит. Попробуйте строку 32 изменить с
Кстати, если ваш txtLog указывает на тип TextBox, то для добавления лога рекомендую использовать txtLog.AppendText("blabla") вместо txtLog.Text += "blabla". Во-первых, AppendText во много раз быстрее, во-вторых, он автоматически прокручивает скроллбар на последнюю сделанную запись.
0
|
|||||||||||
|
62 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
|
||
| 18.09.2011, 14:42 [ТС] | ||
![]() P.S. за совет с AppendText большое спасибо.
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||
| 18.09.2011, 15:57 | |||||||
0
|
|||||||
|
62 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
|
|
| 18.09.2011, 19:29 [ТС] | |
|
kolorotur, и как с этим бороться ?
Пробовал исправлять на Read и ReadLine всё равно виснет =( Как в первый раз он ответ тогда получает ?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 18.09.2011, 20:19 | ||||
Чтобы форма не висла, можно использовать асинхронный сокет, но даже в том случае придется решать, в какой момент полученное сообщение можно считать полным.
0
|
||||
|
62 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
|
|||
| 18.09.2011, 22:09 [ТС] | |||
|
Но мне нужно нечто универсальное, не зависящее от протокола ![]() Как ещё можно общаться с сервером ?
0
|
|||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||||||||||||||||
| 19.09.2011, 11:09 | ||||||||||||||||||||
Собственно, отсюда и подвисание во втором случае (строка 46):
![]() Надо бы сделать так:
Рецепт прост: узнаем какой протокол используется сервером (программно или де-факто по списку), соединяемся, используем в общении с сервером протокол, который он понимает.
1
|
||||||||||||||||||||
|
62 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
|
|
| 19.09.2011, 22:16 [ТС] | |
|
kolorotur, спасибо, всё работает
![]() Я имел ввиду как установить слушатель события. Что бы программа продолжала функционировать не дождавшись ответа.
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 20.09.2011, 10:06 | |
|
Я обычно использую асинхронный сокет. Правда в этом случае придется манипулировать массивами байт и самостоятельно разбивать полученные сообщения на строки.
Возможно есть более высокоуровневые решения, но я, если честно, не интересовался - мне и сокета всегда с головой хватало.
0
|
|
|
gotter
|
|
| 25.11.2011, 16:32 | |
|
Мне одно время нужно было работать с COM-портом через промышленный преобразователь MOXA. У него две дырки RS-232 и Ethernet. Соединяешься по Ethernet c TCP-сервером и шлешь байты, о коробочка ретранслирует из в свой COM-порт. Так я когда это делал скачал прогу Free Communication Terminal и рефлектором прошелся по ней. В качестве примера - самое то. Сгенерил исходники ее и с тех пор использую с небольшими модификациями. Могу выслать мои исходники переработанные, кому интересно.
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 26.11.2011, 00:52 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 2
|
|
| 18.04.2014, 18:31 | |
|
Коллеги, весьма интересно, у меня IO Logic E2210 теряет связь через несколько минут успешной работы. последовательно вызывал MXIO_Init, ....затем DO_Write и после 2-3 минут бездействия слетает. Видал ли кто такое ? Ниешанц тупит ...
0
|
|
| 18.04.2014, 18:31 | |
|
Помогаю со студенческими работами здесь
13
Найти ошибки в коде
Найти ошибки в коде
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|