![]() |
|
![]() ![]() ![]() |
|
Xuch |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 23.12.2013 Репутация: нет Всего: нет |
Здравствуйте, друзья!
Очень нужна помощь с GLib. Есть GMainLoop - там основной цикл программы, к нему добавлен таймер, по которому осуществляются некоторые действия. Все работало прекрасно, пока я не добавил слушающий сокет - теперь как только подключается клиент, пока он не отключится - таймер не срабатывает. Понимаю, что нужно как-то другим потоком прикрутить к основной GMainLoop, но как непонятно, т.к. в официальной документации только краткий абзац и далее описание функций, которое не помогает понять как организовать процесс в целом. Исходная часть:
Слушающий сокет:
Помучив документацию по GLib я состряпал нечто такое:
Однако здесь я не понимаю, как подключить обработчик. И вообще в том ли направлении я двигаюсь? Заранее большое спасибо за любую помощь! |
||||||
|
|||||||
Xuch |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 23.12.2013 Репутация: нет Всего: нет |
Код несколько видоизменился, однако по-прежнему ничего не работает...
На данный момент проблема в том, что клиент не может подключиться к серверу, хотя при запуске программы через netstat я вижу, что целевой порт слушается. Видимо проблема где-то начиная с g_io_create_watch(), так как если я ее меняю на g_io_add_watch(), то сервер начинает работать. Но в этом случае при подключении клиента у меня отваливается таймер на gmainloop, а когда клиент отключается функция-callback таймера выполняется столько раз, сколько таймер срабатывал за время подключения клиента. Получается ни один вариант неработоспособен. Буду рад любым идеям! Спасибо Добавлено через 5 минут и 16 секунд Привожу также код обработчика:
Access - это класс, который получает сокет клиента, проверяет права доступа и осуществляет протокольный обмен с клиентом. access->Cycle(Rec) - это бесконечный цикл до того времени, пока клиент или сервер не закроют соединение. |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |