Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

Ограничение количества подключаемых клиентов   Найти похожие ветки 

 
Gleb Grenkin   (2004-09-27 12:28) [0]

Все доброго времени суток!
Мой вопрос: я работаю с TServerSocket и TClientSocket.
Как мне сделать так, чтобы к серверу могло подключиться НЕ БОЛЕЕ ОДНОГО клиента?
Спасибо.


 
Digitman ©   (2004-09-27 12:39) [1]

никак


 
Reindeer Moss Eater ©   (2004-09-27 12:40) [2]

Заранее открыть столько дескрипторов на машине с сервером, что бы соединение первого же клиента съело последний свободный.


 
Digitman ©   (2004-09-27 13:10) [3]


> Reindeer Moss Eater


ну ты загнул)
гланды через причинное место ?)


 
Digitman ©   (2004-09-27 13:14) [4]

впрочем, через "причинное место" можно сделать и это ...
перехватить вызов WSAStartup, SetSockOpt, Listen, accept и иже с ними и  работать с ws v2.xx, задействуя true conditional acceptance, ежели тек.ОС есть не менее чем Винтукей

стоит ли вот только ?


 
Devel ©   (2004-09-27 13:55) [5]

а если в событии OnClientConnect проверить, и если соединение уже есть сразу же оключить?


 
Digitman ©   (2004-09-27 14:10) [6]


> Devel ©   (27.09.04 13:55) [5]


и как это соответствует условиям, заданным в вопросе ?
да никак не соответствует !


 
Polevi ©   (2004-09-28 17:05) [7]

поправить scktcomp, добавив туда cond accept - не такая уж сложная задача, делов на пару часов максимум


 
Gleb Grenkin   (2004-10-21 11:23) [8]

Devel ©
суть правильна, только при отключении вызывается какое-то там событие (onDisconnect или какое-то ещё - название из головы вылетело), и в TLabel не тот статус показывается.

А надо, чтобы, когда кто-то подключается к серваку, к которому уже подключились, у клиента, который пробует подконнектиться, возникала ошибка соединения или что-то типа того.


 
Smithson   (2004-10-21 12:41) [9]

Ну так в чем проблема? Заводишь глобальный счетчик. При подключении его проверяешь и если он не больше предела, увелиичиваешь и даешь подключение. А если больше, то закрываешь новую сессию.
При отключении уменьшаешь.


 
Digitman ©   (2004-10-21 12:55) [10]


> надо, чтобы, когда кто-то подключается к серваку, к которому
> уже подключились, у клиента, который пробует подконнектиться,
> возникала ошибка соединения или что-то типа того


именно такую фичу и дает задействование механизма true conditional acceptance


 
Xtron ©   (2004-11-02 05:45) [11]

Че мозги то парить?:

procedure TForm1.ServerSocketAccept(Sender: TObject;
 Socket: TCustomWinSocket);
begin
if ServerSocket.Socket.ActiveConnections >1 then Socket.Close;
end;


 
Digitman ©   (2004-11-02 08:19) [12]


> Xtron ©   (02.11.04 05:45) [11]


когда ты говоришь Socket.Close, то это подразумевает, что коннект только что установлен, и ты просто закрываешь его тут же .. и где же это соответствует условию ограничения именно подключений ?



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

Текущий архив: 2005.01.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
4-1102049336
dr Tr0jan
2004-12-03 07:48
2005.01.23
Недокументированные виды хуков: WH_HARDWARE


14-1104700309
Vaitek
2005-01-03 00:11
2005.01.23
Это у всех Опера глючит или только у меня?


1-1105590321
ashnurov
2005-01-13 07:25
2005.01.23
Поиск файла


3-1103367985
Серый
2004-12-18 14:06
2005.01.23
Вычисляемое поле


10-1080931350
Дуся
2004-04-02 22:42
2005.01.23
Помогите, при вызове метода объекта вылазит exeption:





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