Форум: "Сети";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
Внизглюки с 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c