Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/50: Рейтинг темы: голосов - 50, средняя оценка - 4.94
5 / 4 / 1
Регистрация: 16.08.2013
Сообщений: 110

на accept() зависает

11.12.2013, 16:06. Показов 10650. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, делаю чат на основе win socket в консольном варианте всё работает, делаю в оконном интерфейсе зависает на accept(). Помогите кто может
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2013, 16:06
Ответы с готовыми решениями:

Зависает accept windows forms
Как сделать что бы не зависало на accept или на другом зависает сам не пойму попробуйте сами протестировать давно не пойму #define...

После Socket.Accept() зависает приложение
После строки Socket.Accept() зависает приложение ,я знаю что этот метод останавливает выполнение кода пока он не выполнится ,как сделать...

accept
DWORD WINAPI ThreadNetworkAdminSystem(StructurNetworkAdminData &data) { StructurClientData *TmpClientData=new StructurClientData; ...

25
5 / 4 / 1
Регистрация: 16.08.2013
Сообщений: 110
13.12.2013, 22:58  [ТС]
Студворк — интернет-сервис помощи студентам
vxg, спасибо за разъяснения, только вот не понятно если создание сокета писать на кнопку, то где разместить таймер и обмен revc и send?

Добавлено через 1 минуту
Убежденный, может и Вы подскажите?)

Добавлено через 2 минуты
спасибо за разъяснения, но вот не понятно где разместить цикл с таймером и обмен данными?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.12.2013, 23:36
Цитата Сообщение от PanKiller Посмотреть сообщение

C++
1
ioctlsocket(SERVERsServ, FIONBIO,(unsigned long *)&ul);
это как бы намёк на то что должно получиться, это серверная часть в асинхронном режиме
Мне бы не хотелось Вас запутывать, но данный код устанавливает неблокирующий режим, а
неблокирующий режим и асинхронный ввод-вывод - это две разные вещи.
0
5 / 4 / 1
Регистрация: 16.08.2013
Сообщений: 110
13.12.2013, 23:55  [ТС]
Убежденный, вот и у меня закралось мнение что эта за функция
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
14.12.2013, 06:55
Цитата Сообщение от PanKiller Посмотреть сообщение
не понятно если создание сокета писать на кнопку, то где разместить таймер и обмен revc и send
если бы я писал в borland c++ builder я бы кинул на форму компонент "таймер". это такой компонент который вызывает обработчик например каждые 200 мс. вот в этот обработчик я бы и запихал тело + участок кода для принятия подключения. еще один таймер обслуживал бы прием данных. список сокетов был бы глобальным объектом или полем формы.
Цитата Сообщение от Убежденный Посмотреть сообщение
как в других (не-Windows) системах решается проблема select
к сожалению не настолько погрузился что бы ощутить эту проблему. что мешает вызывать select с одним дескриптором? и сделать такой вызов с нулевым таймаутом? и сделать в цикле ровно столько вызовов сколько у нас дескрипторов? а после цикла воткнуть Sleep? мешать может только жадность до времени на которое вызывается Sleep - как бы "а вдруг пока мы спим событие произойдет". да, наверное, в системах обслуживающих 1 млн подключений это актуально... наверное дробят список дескрипторов на куски пролазающие в select...
0
5 / 4 / 1
Регистрация: 16.08.2013
Сообщений: 110
14.12.2013, 12:53  [ТС]
на самом деле у меня всё прекрасно работает если прописать несколько функций recv подрад, но если взять эту функцию в цикл while(1) то всё глючит (((

Добавлено через 33 минуты
и зачем нужен таймер ума не приложу

Добавлено через 1 минуту
я так понимаю мне нужно реализовать не блокируемый сокет с асинхронным вводом выводом
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
14.12.2013, 18:10
Цитата Сообщение от PanKiller Посмотреть сообщение
на самом деле у меня всё прекрасно работает если прописать несколько функций recv подрад
да, разве кто-то говорил обратное?
Цитата Сообщение от PanKiller Посмотреть сообщение
если взять эту функцию в цикл while(1) то всё глючит
все не может глючить. потому как "все" и "глючит" - это слишком общие термины. вот, например, у меня не глючит. в тех примерах, что я привел имеются циклы и они тоже не глючат. поэтому - предметно: что, где и как работает не так как вы думаете оно должно работать?
Цитата Сообщение от PanKiller Посмотреть сообщение
и зачем нужен таймер ума не приложу
я не знаю какую именно задачу вы решаете. если он вам не нужен - не используйте.
Цитата Сообщение от PanKiller Посмотреть сообщение
я так понимаю мне нужно реализовать не блокируемый сокет с асинхронным вводом выводом
если в контрольной именно так и написано я не вижу причин читать справа налево.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2013, 18:10

accept
Можно ли как то устанавливать тайм-аут для этой функции ?

Подвисает accept
Всем привет! У меня сокетный сервер написан на С++, а клиент на Java. Все прекрасно работает на Windows 8. Поставил систему на Windows...

accept не соединяет
#include "stdafx.h" #include <winsock2.h> #include <windows.h> const int WM_SERVER_ACCEPT = WM_USER+1; HWND hwnd; ...

Функция accept
Здравствуйте уважаемые программисты! Помогите разобраться с основами. Вот я на основе этой статьи написал программу, которая связывает два...

accept error
Ругается на accept... собственно почему? (п.с. под windows всё ок...) int sClient; sockaddr_in client_addr; int client_addr_size...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru