|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
||||||
Проверка сокета08.04.2014, 17:02. Показов 13344. Ответов 35
Метки нет (Все метки)
Как можно проверить сокет,тоесть соеденение его,
вот так я проверяю
Добавлено через 19 минут подскажите варианты как можно проверять связь сокета клиента и сервера?а то я уже перепробывал почти все варианты
0
|
||||||
| 08.04.2014, 17:02 | |
|
Ответы с готовыми решениями:
35
Считать данные с сокета в массив
|
|
Ушел с форума
|
||||||
| 08.04.2014, 23:25 | ||||||
|
Клиент:
должен, видимо, дескриптор сокета...
0
|
||||||
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
|
| 08.04.2014, 23:27 [ТС] | |
|
Убежденный, тут все нормально я посылаю просто в поток функцию без параметров это клиент,он просто читает в цикле данные бесконечном,отделил в поток что бы окно реагировала на другие действия
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 08.04.2014, 23:27 | |
|
sergeu90, сейчас осталась проблема в работе ThreadPool?
0
|
|
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
||||||
| 08.04.2014, 23:30 [ТС] | ||||||
|
DrOffset, проблема только и была в ThreadPool он не правильно работает если ему выставить максимальное количество потоков
0
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 08.04.2014, 23:46 | ||
|
Короче, можешь подробнее описать в чем проблема и как мне ее воспроизвести?
0
|
||
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
|
| 08.04.2014, 23:54 [ТС] | |
|
DrOffset, сделай максимальное количество поток 2 и подсоедени 4 клиента,должно что 2 клиента будут работать,а 2 буду в очереди,потом закрой клиента одного из них,подсоеденится еще один клиент который ждал и один будет еще ждать,потом отсоедени еще одного клиента и по идеи должен был заработать тот который в очереди был,но управление возвращается опять тому же который занял перед этим
Добавлено через 1 минуту DrOffset, тоесть как будто в очереди который был он не занинимает потом поток,а должен был ща приведу скриншот как работает
0
|
|
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
|
| 09.04.2014, 00:01 [ТС] | |
|
0
|
|
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
|
| 09.04.2014, 00:35 [ТС] | |
|
первая картинка 4 клиента,2 из них работают 2 ожидают,
вторая картинка завершил 1 клиента другой получил свой поток и уже может работать третия картинка завершил еще 1 клиента а тот который должен был заработать не заработал,а вернуло сообщение опять тому который на 2 картинке получил управление,тоесть тот из очереди как будто ушел куда то Добавлено через 32 минуты DrOffset, я думал это может так происходит из за recvв функции потока?может она что то делает не то
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||||||
| 09.04.2014, 00:37 | |||||||||||
Сообщение было отмечено sergeu90 как решение
Решение
sergeu90, в общем все понятно, разобрался в чем дело.
Ты зря отдаешь по адресу сокет в поток, нужно копировать. Это на время получается разделяемый ресурс, который перезатирается на очередной итерации подключения и поток цепляется к уже существующему соединению. Я сделал вот так и все заработало.
По хорошему это надо переделать через очередь событий и синхронизировать только ее. Тогда и сокет для работы можно через событие передать и данные другие. Поток начала работу, достал из очереди событие и начал его обрабатывать. В список клиентов добавлять в основном потоке, удалять тоже. Добавлять при старте обработки, удалять по завершению. Как-то так.
1
|
|||||||||||
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
|
| 09.04.2014, 00:40 [ТС] | |
|
DrOffset, у меня теперь ругается на функцию SOCKET socket = *((SOCKET *)clientSocket);если поменял как вы work = CreateThreadpoolWork(ServeClient, (void*)clientSocket,&CallBackEnviron);
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||||
| 09.04.2014, 00:41 | ||||||
|
sergeu90, да, забыл. там тоже надо менять:
0
|
||||||
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
|
| 09.04.2014, 00:45 [ТС] | |
|
DrOffset, все разобрался большое спасибо)))а насчет разделяемых ресурсов сделал через критическую секцию
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 09.04.2014, 00:46 | |
|
sergeu90, теперь поведение какое требуется?
0
|
|
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
|
| 09.04.2014, 00:54 [ТС] | |
|
DrOffset, да))как вы дошли до этого?как вы узнали в чем именно проблема?
0
|
|
| 09.04.2014, 01:03 | |
|
Не по теме: sergeu90, просто исправлял все потенциально опасные места :) Добавил синхронизацию, проверки ошибок после вызовов, ну и это тоже на глаза попалось. Оно на поверхности на самом деле. Т.е. невооруженным глазом понятно, что так делать нельзя. Осталось только удостовериться, что причина именно озвученной проблемы была в этом. Пара прогонов для проверки и сюда пост написал.
0
|
|
|
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
|
|
| 09.04.2014, 01:05 [ТС] | |
|
DrOffset, спасибо,убил два дня на это,но стоило того что бы разобраться теперь понимаю
0
|
|
| 09.04.2014, 01:05 | |
|
Winsock. Почему в приведенном коде не работает создание сокета?
Проверка сокета на подключение Проверка сокета на наличие дефектов Копирование сокета или передача сокета в функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|