Форум: "Сети";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
ВнизКак правильно отсоединить клиента? Найти похожие ветки
← →
Akni (2003-07-14 17:54) [0]Подскажите, пожалуйста, как правильно реализовать сабж?
По условию задачи только один клиент может одновременно быть подключен к серверу, т.е. при попытке подсоедниния клиента нужно проверять, или есть уже подключенные. И если да, то отсоединять очередного «желающего».
Попытка отключить описанным ниже образом нужных результатов не дает.
TISServerThread: TThread;
fServerSocket: TserverSocket;
...
fServerSocket.OnClientConnect := SocketClientConnect;
....
procedure TISServerThread.SocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
if fServerSocket.Socket.ActiveConnections>1 then
begin
Socket.Close;
Exit;
end;
...
end;
← →
Spawn (2003-07-15 07:16) [1]так поставь на
procedure TISServerThread.SocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
← →
Digitman (2003-07-15 08:10) [2]
> нужных результатов не дает
это почему же ? Socket.Close как раз и делает то, что тебе нужно !
← →
Snap (2003-07-15 13:47) [3]Может это что то не то, но кажется в сокетах есть свойство MaxConnections. Или нету... просто нету щас дельфи под рукой, не могу сам посмотреть. А так просто устанавливаеш его в 0 и больше ничего не надо.
← →
Digitman (2003-07-15 13:53) [4]
> Snap
TServerSocket не имеет такого свойства.
← →
Akni (2003-07-16 13:14) [5]
> Socket.Close как раз и делает то, что тебе нужно
Да, тут я поспешила с выводами. Тогда другой вопрос:
при таком отключения клиента происходит след.:
1. возникает событие OnClientDisconnect (ActiveConnections=2)
2. возникает событие OnAccept (ActiveConnections=2)
Вопрос: почему возникает OnAccept, ведь клиента-то уже отключили?
← →
Digitman (2003-07-16 13:30) [6]
> почему возникает OnAccept, ведь клиента-то уже отключили?
быть того не может !
вероятно, клиент у тебя при обнаружении дисконнекта по инициативе сервера тут же автоматически запрашивает повторный коннект.
то что в обработчике OnAccept() ты видишь ActiveConnections=2, вполне нормально и лишний раз подтверждает это
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c