Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.16;
Скачать: CL | DM;

Вниз

глюки с ActiveConnections   Найти похожие ветки 

 
izhalex ©   (2002-10-12 12:05) [0]

Подскажите люди может я где глючу или что ...
Включаю приложение с ServerSocket
Коннекчусь к нему с других компов ClientSocket"ами
например если коннект был с двумя ClientSocket"ами, то ServerSocket.Socket.ActiveConnections может быть и 3 и даже 4 :(
как будто по рандому
подскажите плз в чем глюк


 
Malder ©   (2002-10-14 00:27) [1]

сделай так...

ServerSocket.Connect(...);
Begin
Label1.caption:=inttostr(ServerSocket.socket.activeconnections);
end;
...
ServerSocket.Disconnect(...);
Begin
Label1.caption:=inttostr(ServerSocket.socket.activeconnections);
end;


Ты будешь сразу видеть, когда изменяется ActiveConnections.

Если в начале он не будет равен нулю, если сразу меняется больше, чем на единицу - то это глюк ServerSocket (это вряд ли).

Далее посмотри. После диконекта клиентов ActiveConnections уменьшается ?


 
izhalex ©   (2002-10-14 12:30) [2]

Делал я такое ...
чаще всего activeconnections при присоединении 1 клиента увеличивается на 1, но иногда и на 2 :( а после дисконнекта всегда тока на 1.(в начале activeconnections=0)
дело в том что клиентами я постоянно (по таймеру) опрашиваю наличие сервера(т.е. для теста беру ситуацию, когда клиент включен, а сервак нет). дак вот, ежели ставлю малое время опроса на клиенте(порядка 1 сек) то возникает та самая трабла при включении сервака, а ежели 5 сек - то вроде бы нет ...


 
izhalex ©   (2002-10-14 12:32) [3]

входит в процедуру ServerSocket1ClientRead 1 раз, а activeconnections сразу на 2 ...


 
Digitman ©   (2002-10-14 13:24) [4]

>izhalex

Событие ClientRead здесь ни при чем.


Если АctiveСonnections = 2 , это говорит только об одном - за все время данного сеанса активности сервера на клиентской стороне кол-во успешных коннектов было на два больше, чем кол-во успешных же дисконнектов.


 
izhalex ©   (2002-10-15 15:26) [5]

ну енто и колючему ясно
а вот как бороть сию ситуацию - другой вопрос :-|


 
Digitman ©   (2002-10-16 09:09) [6]

А зачем ее "бороть" ? Просто проконтролируй происходящее в своем собственном сч-ке активных коннектов :

- на стороне сервера :
в событии OnClientConnect() - Inc(Счетчик)
в событии OnClientDisconnect() - Dec(Счетчик)

- на стороне клиента :
в событии OnConnect() - Inc(Счетчик)
в событии OnDisconnect() - Dec(Счетчик)


 
izhalex ©   (2002-10-22 08:48) [7]

ну activeconnections это еще полбеды. но вот что делать с сокетами лишними у серверсокета - это уже вопрос. ведь они тоже по 2 создаются :( или удалять один лишний ?


 
Digitman ©   (2002-10-22 08:55) [8]

Как это "по 2 создаются" ? Сами по себе ?? Да ну не бывает чудес !!

Еще раз спрашиваю :

1. сколько всего экземпляров TClientSocket (потенциальных клиентов) существует на момент тестирования ?
2. сколько раз у каждого из клиентов возникло событие OnConnect и OnDisconnect (как ответная реакция на Open и Close) ?
3. сколько раз у сервера возникло событие OnClientConnect и OnClientDisconnect ?



 
izhalex ©   (2002-10-22 09:10) [9]

попробую поподробнее
допустим у меня в сетке n клиентов все ждут соединения с серваком, который пока вырублен. начинаю трасерить серверную программу, захожу в ServerSocket1ClientRead ПЕРВЫЙ раз, сразу после формкреейта (первый ответ от ПЕРВОГО же клиента). Смотрю на значение ActiveConnections, а оно уже ДВА ! вот и все чудеса :(((((((( и OnClientDisconnect еще ни разу


 
Digitman ©   (2002-10-22 09:51) [10]


> начинаю трасерить


Не знаю уж, что ты там и как "трасеришь", но OnClientRead() возникает ПОСЛЕ OnClientConnect().

Ты не выдумывай, а подсчитай, СКОЛЬКО РАЗ на стороне сервера возникло событие OnClientConnect и сравни полученное значение с состоянием св-ва ActiveConnections



Страницы: 1 вся ветка

Текущий архив: 2002.12.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
1-51770
kronprince
2002-12-04 20:32
2002.12.16
Кто нибудь создавал формы в initialization ???


14-51911
SPeller
2002-11-24 13:06
2002.12.16
Избавиться от пункта меню в IE


14-51959
vopros
2002-11-26 13:33
2002.12.16
Как заставить себя не спать?


1-51760
AiratX
2002-12-04 19:06
2002.12.16
Как сделать невидимой форму (Application) на Tesk Bare ?


1-51676
Fishka
2002-12-05 15:44
2002.12.16
Принадлежность точки контуру - где найти теорию?