Главная страница
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.49 MB
Время: 0.054 c
1-1104994334
Zhekson
2005-01-06 09:52
2005.01.23
Типизированный StringList


3-1103267528
cad2206
2004-12-17 10:12
2005.01.23
Переход к записи по щелчку мыши в DBGrid e


3-1103532449
Garry_c
2004-12-20 11:47
2005.01.23
Как динамически создать представление в Interbase?


4-1102087680
sashas
2004-12-03 18:28
2005.01.23
Переименовать окно


1-1105287896
Ищущий ответ
2005-01-09 19:24
2005.01.23
OpenDialog