![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
толи Server.Socket глючит ;толи у меня лыжы не едут [D5, Win2k]
RUS1 © (2003-03-04 09:22:00)Всм привет!!!!
проблема:
подключаюсь клиентом к серверу через сокет, проверяю командой
Server.Socket.ActiveConnections количество активных подключений - все окей, активных 1 пользователь, отключаюсь методом Close клиента, опять делаю Server.Socket.ActiveConnections и активных подключений всеравно 1!!!! в чем дело может быть господа???
С уважением RUS!!! Жду предложений!!!!
Aldor (2003-03-05 14:26:00) [1]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.
dimich1978 (2003-03-05 13:03:00) [2]Вообще вин9х с сетью никак не работает, и то что используя сетевую карту вин9х может все же работать с протоколами TCP/IP это все же вообще огромный баг вин9х. Так что кто собрался писать для сети что либо, нужна ось либо вин200х, либо лучше всего Дос, глюков меньше.
Ответ прислал:
Сертифицированный специалист по , багам в винде и их оптимизации.
:-))))
Digitman (2003-03-05 08:35:00) [3]
> Beglec
> метод при помощи Inc and Dec под оболочкой 98 работает не
> корректно
Ерунду ты городишь. Причем здесь Inc и Dec ? Уверен, что проблемы, с которыми ты столкнулся, связаны с недостаточным пониманием механизма Winsock и последовательности возбуждения/корректности обработки событий компонентов, базирующихся на Winsock.
> сами 9х не !корректно работают с сетью
Где конкретные аргументы ?
Beglec (2003-03-04 21:37:00) [4]Могу сказать одно. Как показала практика метод при помощи Inc and Dec под оболочкой 98 работает не корректно. потому как сами 9х не корректно работают с сетью.
Так к примеру - попробуйте в течении 4 часов делать коннект дисконект к серверу - быдет выдаваться ошибка памяти. И после этого количесво соединений не гаратируется.
В NT движке данная проблему уже решена.
RUS1 (2003-03-04 10:57:00) [5]Все господа!!! великая отечественная война окончена всем спасибо!!!!!
все получилось!!!! СПАСИБО!!!
Digitman (2003-03-04 10:48:00) [6]
> корректно отслеживать клиетнов
что значит "корректно отслеживать" ?
procedure TMyForm.MyServerClientConnect(..);
begin
..
Inc(MyClientsCount);
..
end;
procedure TMyForm.MyServerClientDisconnect(..);
begin
..
Dec(MyClientsCount);
..
end;
всех делов)
Fredericco (2003-03-04 10:46:00) [7]А зачем тебе ActiveConnections во время дисконнекта клиента?
RUS1 (2003-03-04 10:41:00) [8]СПАСИБО БРАТ!!!!!!!
все далал именно так ка ты сказал - я ламер!!!!
тогда подскажы в каком событии лучше ставить метод Server.Socket.ActiveConnections чтобы корректно отслеживать клиетнов!!! или таймер единственный выход???
Digitman (2003-03-04 10:33:00) [9]"лыж Ыне едут" - это скорей всего)
> опять делаю Server.Socket.ActiveConnections и активных подключений
> всеравно 1
когда "опять делаешь" ? в какой момент ? в обработчике какого события ? если в OnClientDisconnect(), то так оно и должно быть - декремент сч-ка списка акт.подключений выполняется сервером послезавершения обработки этого события