|
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
|
|||||||||||
Закрыть UDP сервер в потоке05.09.2016, 14:54. Показов 1510. Ответов 13
Метки нет (Все метки)
Всем доброго дня! Никак не могу придумать, как правильно закрыть UDP сервер.
Задача собственно такая: на форме есть SpeedButton, при первом нажатии я запускаю поток и создаю UDP сервер, при втором, надо убить поток и закрыть сервер, собственно, что я сам смог сделать: ReadUDP.cpp
Добавлено через 3 часа 12 минут #UDP я так понимаю, что моя большая ошибка в том, что новый объект класса ReadUDP у меня создается при каждом нажатии на кнопку. мне бы надо это объявление перенести в внутрь if, но тогда в секции else я не буду выдеть объект класса(
0
|
|||||||||||
| 05.09.2016, 14:54 | |
|
Ответы с готовыми решениями:
13
UDP клиент-сервер. Пакет UDP-сервер/клиент на Winsock Не уходят UDP пакеты в потоке (winsock) |
|
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
|
||
| 05.09.2016, 15:29 [ТС] | ||
|
Остается только придумать, где вызвать в потоке метод objUDP.__closeudp();
0
|
||
|
|
||
| 05.09.2016, 15:34 | ||
|
А закрытие сервера перед завершением потока...храните где нибудь ссылки на сервер, и закрываете его..в чем трудность то?
0
|
||
|
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
|
||||||
| 05.09.2016, 15:37 [ТС] | ||||||
|
получается интересная ситуация, т.е. если поток создан и данные приходят, я их вывожу на экран в richedit. Если отжать SpeedButton и выполнить Terminate(), то получается поток все еще крутиться в цикле
0
|
||||||
|
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
|
||||||
| 05.09.2016, 15:52 [ТС] | ||||||
|
Dinkin, пока я писал предыдущее сообщение, Вы успели ответить, а я этого не увидел, но пока пытался отредактировать сообщение - прошли 5 минут выделенные на это
![]() сейчас попробую объяснить что у меня идет не так, а идет ровным счетом всё usd сервер я реализовал на winsocks моя логика работы программы, я могу быть в чем-то не прав и могу переделать если что-то будет предложено: создаем поток - в потоке создаем udp сервер и пока поток !Terminated читаем и если что-то прочитали, отсылаем обратно в основном потоке(это же так называется? там где у меня вся форма и прочие обработки) у меня есть SpeedButton, при первом нажатии - создать потом, при втором - уничтожить. Так вот, при уничтожении мне надо как-то выйти из цикла while и закрыть сервер. объект класса udpserver у меня создается в потоке и я не знаю как его закрыть( т.е. на данный момент
0
|
||||||
|
|
||||||
| 05.09.2016, 16:04 | ||||||
|
а если так попробовать
0
|
||||||
|
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
|
||
| 05.09.2016, 16:08 [ТС] | ||
|
но я пробовал while(!Terminated) тоже результатов не принесло
0
|
||
|
|
||||||
| 05.09.2016, 16:13 | ||||||
|
А я просто не сразу понял что надо...
0
|
||||||
|
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
|
||
| 05.09.2016, 16:17 [ТС] | ||
![]() а надо чтоб выполнялось пока не будет нажата кнопка Stop по которой выполняется Terminate потока поэтому я использовал цикл do{} while(!terminated), но почему поток продолжает висеть в цикле и я так подозреваю на строке ObjUdp.readData();
0
|
||
|
|
||||||
| 05.09.2016, 16:24 | ||||||
|
а так?
0
|
||||||
|
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
|
|
| 05.09.2016, 16:28 [ТС] | |
|
так аналогичная ситуация, теперь функция read выполнится один раз и после этого в потоке будет просто бесконечная проверка не вызвал ли кто-то Terminate()
0
|
|
|
192 / 128 / 52
Регистрация: 19.01.2010
Сообщений: 518
|
||||||
| 09.09.2016, 22:20 | ||||||
|
так?
0
|
||||||
| 09.09.2016, 22:20 | |
|
Помогаю со студенческими работами здесь
14
Закрыть UDP порт на Windows XP
Закрыть форму во втором потоке при окончании вычислений в первом Как осуществить запись(дозапись) в файл в отдельном потоке и закрыть его после записи? Многопоточный Udp сервер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|