Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Прожорливая функция

21K
19 сентября 2006 года
OstHusky
2 / / 19.09.2006
У меня возникла такая проблема при работе с сокетами в студии 2005.

При использовании функции accept() программа ждет коннекта и перестает реагировать на внешние ртаздражители( не отвечает) до тех пор пока не проихойдет коннект, после него все отвисает и она продолжает работу. Как сделать так, чтобы из за этой функции не терялся контроль над программой? Временным решением послужило использование компонента backgroundWorker, однако я думаю это довольно кривой способ, хотелось бы что-нить пооптимальнее.
Никаких циклов while (1) {} нету, зависает именно эта функция, поэтому вставить внутрь нее ничего нельзя. Все примеры которые приводились рассчитаны на консольный режим, поэтому работают в том числе и в MSDN.

И еще, если все-таки решу делать с помощью MFC, то можно ли использовать ее классы только для сокетов? или нужно будет все приложение строить по принципу MFC?
1.8K
19 сентября 2006 года
k3Eahn
365 / / 19.12.2005
По всей видимости юзаешь блокирующие сокеты.
Поэтому стоит, наверное, использовать другую модель ввода/вывода(WSAAsyncSelect,select).
21K
20 сентября 2006 года
OstHusky
2 / / 19.09.2006
А какие инструменты есть на текущий момент для работы с сокетами?
Неужели в Windows forms приложении нужно использовать winsock2? Ведь как я понял они затачивались именно для консольных приложений.
Обязательно ли использовать ли MFC версию сокетов, если MFC вообще нет в моем проекте. Наверняка должны быть собственные средства Windows forms для обеспечения клиент\серверной технологии.

И еще: можно ли сделать только сокеты с использованием MFC, или все приложение придется перестраивать для использования этой технологии?
240
20 сентября 2006 года
aks
2.5K / / 14.07.2006
Так собственно на то он и accept, чтобы стоять и ждать коннекта. Если нужен еще какой то GUI во время ожидания подключения - выноси сетевую функциональность (accept) в отдельный thread и все.
713
20 сентября 2006 года
Ap0k
360 / / 13.03.2006
Цитата:
Windows forms


Тебе в раздел Microsoft .NET Framework

Цитата:
accept()


Интереснео откуда появилась ф-ия в приложении под .NET? Ты используешь C++ CLI?
В общем в пространстве System.Net.Sockets для асинхронной обработки данных. Например можешь использовать метод Socket.BeginAccept. А вообще советую присмотреться к классу TcpListener и поучить мат. часть.

21K
20 сентября 2006 года
kuzya_vl
5 / / 12.09.2006
Хорошая статья http://www.uinc.ru/articles/23
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог