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

Вниз

Ограничение количества клиентов у TServerSocket   Найти похожие ветки 

 
Sunny Way   (2004-05-27 15:12) [0]

Добрый день!
Можно ли как-нибудь ограничить число клиентов, которые принимает сервер?
Я знаю единственное плохое решение..

procedure TDCMStore_Server.OnClientConnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 if ServerSocket.Socket.ActiveConnections > 1 then
 begin
     MessageDLg("You can""t make more than one connection to the server",
     mtConfirmation,[mbOK],0);
     if Socket.Connected then Socket.Close;
  end;
end;


 
Reindeer Moss Eater ©   (2004-05-27 15:17) [1]

В твоем обработчике уже есть два соединения


 
Digitman ©   (2004-05-27 15:20) [2]

если речь идет о W2k/ХР, то в этих системах существует гораздо более изящное решение задачи (правда, непосредственно не поддерживаемое алгоритмом TServerSocket)

см. ф-цию Winsok2.WSAAccept()


 
Digitman ©   (2004-05-27 15:26) [3]

в упомянутых  системах эта возможность базируется на работающей там опции

см. SetSockOpt(... SO_CONDITIONAL_ACCEPT)

смысл ее установки в том, что переданная параметром в WSAAccept() callback-ф-ция может возвращать false-результат, который в кон.итоге приводит к тому, что отвергнутый с пом.этого механизма клиент в ответ на свой SYN-запрос не получит ACK-квитанцию, что для клиента равнозначно отказу сервера в коннекте


 
Sunny Way   (2004-05-27 16:22) [4]

Правильно ли я понимаю, что средствами компонент delphi этого сделать вообще нельзя (Если делать указанным выше способом, TServerSocket почему-то все равно работает со вторым сокетом - получает сообщения и т.д., то считает его открытым)? Я обязательно разберусь с winsock, но несколько позже :), сейчас быстро не получилось.


 
Verg ©   (2004-05-27 19:06) [5]

procedure TForm1.ServerSocket1Accept(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 if ServerSocket1.Socket.ActiveConnections > MAX_CLIENTS then
   Socket.Close;
end;


И никаких MessageBox !


 
able ©   (2004-05-27 19:35) [6]


> И никаких MessageBox !

они и не нужны!


 
able ©   (2004-05-27 19:35) [7]


> И никаких MessageBox !

они и не нужны!


 
Sunny Way   (2004-05-28 17:20) [8]

Спасибо большое, если делать close на OnAccept, работает вроде.



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

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

Наверх




Память: 0.46 MB
Время: 0.047 c
1-1089624951
Snip
2004-07-12 13:35
2004.07.25
Owner


14-1089177548
Ega23
2004-07-07 09:19
2004.07.25
Ещё раз к вопросу о драйверах


8-1084317604
MicroMozg
2004-05-12 03:20
2004.07.25
Проигрывание XM ов.


14-1089199166
_none_
2004-07-07 15:19
2004.07.25
смешные вакансии


1-1089310072
Shc
2004-07-08 22:07
2004.07.25
Работа с XML (и Schema)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский