Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Открытие сокета в неглавной нити [D6, Win2k]


VaS ©   (2002-11-22 12:52:00) 

Почему приходиться делать так:


Socket.Active :=True;
repeat
C_System.DoProcessMes;
Sleep(10);
until Socket.Active = true;


Если убираем обработку сообщений, то сокет не откроется.
После введения нитки, работающей с сокетом таким образом, в нек момент времени (через минуту или через сутки - по разному) приложение при потере фокуса выдает AV по адресу 0. После чего каждая последующая потеря фокуса обязательно сопровождается данной ошибкой, хотя приложение продолжает работать.

У меня большие подозрения, что работать с сокетами нужно несколько иначе.


OutSidEr   (2002-11-22 15:09:00) [1]

ИМХО самое лучшее - это использовать нормальные библиотеки для работы с сокетами вместо стандартных дельфийских - Synapse например. Или, если хочется поизвращаться, можно и на вндовом API...


Polevi   (2002-11-22 15:09:00) [2]

если ты используешь TClientSocket, почитай хелп на WSAAsyncSelect


VaS   (2002-11-22 14:21:00) [3]

А подробнее? Сокеты используют для работы сообщения виндоус? Нет? Тогда как правильно организовывать работу с ними в нитях?


Polevi   (2002-11-22 14:04:00) [4]

твои подозрения не напрасны


Наверх

Титульная страница Поиск, карта сайта Написать письмо