Форум: "Сети";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Внизтоли Server.Socket глючит толи у меня лыжы не едут Найти похожие ветки
← →
RUS1 (2003-03-04 09:22) [0]Всм привет!!!!
проблема:
подключаюсь клиентом к серверу через сокет, проверяю командой
Server.Socket.ActiveConnections количество активных подключений - все окей, активных 1 пользователь, отключаюсь методом Close клиента, опять делаю Server.Socket.ActiveConnections и активных подключений всеравно 1!!!! в чем дело может быть господа???
С уважением RUS!!! Жду предложений!!!!
← →
Digitman (2003-03-04 10:33) [1]"лыж Ы не едут" - это скорей всего)
> опять делаю Server.Socket.ActiveConnections и активных подключений
> всеравно 1
когда "опять делаешь" ? в какой момент ? в обработчике какого события ? если в OnClientDisconnect(), то так оно и должно быть - декремент сч-ка списка акт.подключений выполняется сервером после завершения обработки этого события
← →
RUS1 (2003-03-04 10:41) [2]СПАСИБО БРАТ!!!!!!!
все далал именно так ка ты сказал - я ламер!!!!
тогда подскажы в каком событии лучше ставить метод Server.Socket.ActiveConnections чтобы корректно отслеживать клиетнов!!! или таймер единственный выход???
← →
Fredericco (2003-03-04 10:46) [3]А зачем тебе ActiveConnections во время дисконнекта клиента?
← →
Digitman (2003-03-04 10:48) [4]
> корректно отслеживать клиетнов
что значит "корректно отслеживать" ?
procedure TMyForm.MyServerClientConnect(..);
begin
..
Inc(MyClientsCount);
..
end;
procedure TMyForm.MyServerClientDisconnect(..);
begin
..
Dec(MyClientsCount);
..
end;
всех делов)
← →
RUS1 (2003-03-04 10:57) [5]Все господа!!! великая отечественная война окончена всем спасибо!!!!!
все получилось!!!! СПАСИБО!!!
← →
Beglec (2003-03-04 21:37) [6]Могу сказать одно. Как показала практика метод при помощи Inc and Dec под оболочкой 98 работает не корректно. потому как сами 9х не корректно работают с сетью.
Так к примеру - попробуйте в течении 4 часов делать коннект дисконект к серверу - быдет выдаваться ошибка памяти. И после этого количесво соединений не гаратируется.
В NT движке данная проблему уже решена.
← →
Digitman (2003-03-05 08:35) [7]
> Beglec
> метод при помощи Inc and Dec под оболочкой 98 работает не
> корректно
Ерунду ты городишь. Причем здесь Inc и Dec ? Уверен, что проблемы, с которыми ты столкнулся, связаны с недостаточным пониманием механизма Winsock и последовательности возбуждения/корректности обработки событий компонентов, базирующихся на Winsock.
> сами 9х не !корректно работают с сетью
Где конкретные аргументы ?
← →
dimich1978 (2003-03-05 13:03) [8]Вообще вин9х с сетью никак не работает, и то что используя сетевую карту вин9х может все же работать с протоколами TCP/IP это все же вообще огромный баг вин9х. Так что кто собрался писать для сети что либо, нужна ось либо вин200х, либо лучше всего Дос, глюков меньше.
Ответ прислал:
Сертифицированный специалист по , багам в винде и их оптимизации.
:-))))
← →
Aldor (2003-03-05 14:26) [9]TYourForm = class(TForm)
...
procedure RefreshClients (var Msg: TMessage);
message wm_RefreshClients;
...
procedure TYourForm.RefreshClients;
//здесь все твое типа for I := 0 to SomeSocket.ActiveCons - 1
...
procedure TYourForm.ServerSocket1ClientDisconnect(Sender: TObject;
begin
...
PostMessage (Handle, wm_RefreshClients, 0, 0);
...
end;
RefreshClients произойдет уже после внутренних преобразований TServerSocket.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c