Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Вниз

Server.Сlose=error??   Найти похожие ветки 

 
zyx ©   (2004-05-03 12:54) [0]

Всем привет! Подскажите пожалуйста: как закрыть сервак при дисконнекте клиента? Использую serversocket,client socket, неблокирующий режим. Если клиент отсоеденился, то мне неоюходимо завершить прослушивание порта серваком. В обработчике OnClientDisconnect пишу server.close и как только выхожу из обработчика то вываливается куча ошибок, например такая: попытка выполнить оперцию над обьектом не являющимся сокетом Api closesocket (ну или что-то вроде етого). Я так понимаю значит нельзя сервак закрывать до выхода из обработчика события OnClientDisconnect. Можно ли как нибудь ето обойти кроме того как использовать таймер? Заранее блогадарен за помощь.


 
SergP ©   (2004-05-03 13:00) [1]

>понимаю значит нельзя сервак закрывать до выхода из обработчика события
>OnClientDisconnect

А PostMessage не подойдет?


 
zyx ©   (2004-05-03 21:50) [2]

Подойдет или нет я не знаю потому-что не могу как раз ето реализовать((( Может кто-нибудь подскажет как это сделать?


 
zyx ©   (2004-05-06 20:32) [3]

PostMessage не катит. Народ может кто-нибудь сталкивался с такой проблемой? Помогите плиз, ну очень надо...


 
Verg ©   (2004-05-06 22:41) [4]


> zyx ©   (06.05.04 20:32) [3]
> PostMessage не катит.


Почему не катит? В чем проблема?


 
zyx ©   (2004-05-06 23:32) [5]

//Почему не катит? В чем проблема?
Ведь может сложиться такая ситуация (взависимотси от загрузки проца), что процедура которая обрабатывает посланное через PostMessage сообщение выполниться перед end"ом?


 
Verg ©   (2004-05-06 23:56) [6]


> zyx ©   (06.05.04 23:32) [5]
> //Почему не катит? В чем проблема?
> Ведь может сложиться такая ситуация (взависимотси от загрузки
> проца), что процедура которая обрабатывает посланное через
> PostMessage сообщение выполниться перед end"ом?


Ни в коем разе. Дело все происходит в одном потоке (главном). Ты вызываешь PostMessage в обработчике подобных им сообщений. Эта функция просто ставит сообщение в очередь сообщений данному окну, принадлежащему данному потоку и на этом ее ф-ции заканчиваются.

"На пальцах", упрощенный цикл обработки сообщений:

while true do
begin
 GetMessage(....); // Здесь мы извлекаем следующее сообщение из очереди, если оно там есть
 DispatchMessage(...); //Вот здесь произойдет вызов обработчика взятого с очереди сообщения и, соответственно, пока тот не завершит свои действия, цикл обработки не продолжится. В этом обработчике на очередь сообщений могут быть установлены другие сообщения, но они будут просто установлены в очередь, а их обработка произойдет только на следующих итерациях приведенного цикла
end;

То, чего ты испугался может произойти если вместо PostMessage ты применишь SendMessage, которая при этих же условиях приведет прямо к вызову обработчика этого сообщения, а не к установке сообщения в очередь.


 
zyx ©   (2004-05-07 00:35) [7]

to Verg Спасибо за ответ!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.03 c
9-1079291007
delpher_gray
2004-03-14 22:03
2004.07.04
Простенькая программка на DirectX


1-1087537714
Ш-К
2004-06-18 09:48
2004.07.04
Найти свойство по имени


14-1087195534
syte_ser78
2004-06-14 10:45
2004.07.04
Уже несколько раз спрашивал, но никто так и не ответил


14-1087294951
default
2004-06-15 14:22
2004.07.04
Ещё задачка


14-1086894996
RealRascal
2004-06-10 23:16
2004.07.04
Борьба с алкоголизмом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский