Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

толи 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(), то так оно и должно быть - декремент сч-ка списка акт.подключений выполняется сервером послезавершения обработки этого события


Наверх

Титульная страница Поиск, карта сайта Написать письмо