Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2012, 02:07   #1
d2server
Новичок
Джуниор
 
Регистрация: 28.04.2011
Сообщений: 2
По умолчанию Builder и прослушивание winsock

Есть готовый консольный TCP сервер. Написан в VS C++ используя библиотеку winsock.
Интерфейс решил сделать через билдер.
Столкнулся проблемой когда програма входит в бесконечный цикл прослушивания, то окно программы виснет, а сервер нормально принимает и обрабатывает подключения.
Переписывать код под билдеровский TCP компонент не хочется.
Помогите как обойти это неприятное явление?
d2server вне форума Ответить с цитированием
Старый 03.05.2012, 10:28   #2
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

может имеет смысл слушать в отдельном потоке, отличном от потока интерфейса?
f.hump вне форума Ответить с цитированием
Старый 03.05.2012, 10:36   #3
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Как запускаешь TCP сервер? Как происходить общение с сервером?
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 03.05.2012 в 10:42.
Krok27 вне форума Ответить с цитированием
Старый 03.05.2012, 18:53   #4
d2server
Новичок
Джуниор
 
Регистрация: 28.04.2011
Сообщений: 2
По умолчанию

f.hump, То что нужно. Буду изучать.

Krok27
Запуск сервера делаю по нажатию на кнопку
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        HTTP* HTTPServ = new HTTP();
	HTTPServ->Init(80);
        char vchBuffer[MAX_PATH];
        GetModuleFileName(Form1->ClientHandle,vchBuffer,MAX_PATH);
	HTTPServ->Loop(vchBuffer);  //запуск прослушивания
	HTTPServ->CloseWS(); 
}

Последний раз редактировалось d2server; 03.05.2012 в 19:12.
d2server вне форума Ответить с цитированием
Старый 04.05.2012, 09:16   #5
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

А, так он у тебя в виде отдельного модуля, а не отдельная скомпилированная программа? Видать через блокирующие сокеты реализован. Тогда как f.dump сказал.
Есть такая книженция: "Системное программирование в среде Windows", Джонсон М. Харт, там есть пример реализации сервера на основе сокетов с применением потоков и возможностью опроса флага завершения. И вообще полезная книжка.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прослушивание и извлечение информации из входящих соединений ardor C/C++ Сетевое программирование 4 07.04.2012 14:23
Прослушивание музыки в интернете KoBRaAndrey Работа с сетью в Delphi 5 07.08.2010 11:33
прослушивание портов Teksa Работа с сетью в Delphi 8 11.04.2010 10:48
Прослушивание порта SERG1980 Работа с сетью в Delphi 4 17.09.2009 10:53
Прослушивание портов EdNovice Работа с сетью в Delphi 12 07.07.2008 19:58