Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.06.2011, 22:54   #41
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Какие нафих "массивы", спартански спокойный ты наш развивающийся кулибин-самоделкин, вслепую "шурующий" сокетами и парадоксами ?)

Св-во ActiveConnections - это не динамический массив, хотя и индексируется с нуля.

И "реальное количество подключений это ActiveConnetions-1" - это ересь.

Зн-е св-ва ActiveConnetions отражает количество зарегистрированных фактов коннекта (о чем свидетельствует событие OnClientConnect) МИНУС количество зарегистрированных фактов дисконнекта (о чем свидетельствует событие OnClientDisconnect).

Первым подключился некто Вася Пупкин, в соотв.обработчике OnClientConnect ты увидишь ActiveConnections = 1 и индекс пупкинского подключения в списке Connections[] в этот момент равеy 0.

Следом подключился Федя Залупкин, в соотв.обработчике OnClientConnect ты увидишь ActiveConnections = 2 и индекс залупкинского подключения в списке Connections[] в этот момент равеy 1.

Следом Пупкин отключился, в соотв.обработчике OnClientDisconnect ты по-прежнему увидишь ActiveConnections = 2

После завершения обработчика дисконнекта пупкина св-во ActiveConnections = 1, а индекс залупкинского коннекта в списке Connections[] - ты не поверишь - стал равным 0 !
Предлагаешь постоянно мониторить сервером "кто онлайн"?

Можешь объяснить, как определить после отключения допустим какого нибудь пользователя, кто и на какие новые места встал (я про connection)?!
пс. Остыл?
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу

Последний раз редактировалось rule-z; 28.06.2011 в 22:56.
rule-z вне форума
Старый 28.06.2011, 22:59   #42
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Св-во ActiveConnections - это не динамический массив, хотя и индексируется с нуля.
а я не сказал что это массив. это индексируемое свойство.
Цитата:
Зн-е св-ва ActiveConnetions отражает количество зарегистрированных фактов коннекта (о чем свидетельствует событие OnClientConnect) МИНУС количество зарегистрированных фактов дисконнекта (о чем свидетельствует событие OnClientDisconnect).
пока клиент не отключился он считается подключенным.
так что ничего не ересь.
а про минус один к сожалению ошибся.
Цитата:
После завершения обработчика дисконнекта пупкина св-во ActiveConnections = 1, а индекс залупкинского коннекта в списке Connections[] - ты не поверишь - стал равным 0 !
хватит брызгать слюной, если прочтете внимательно то увидите что я нигде не говорил привязыватся к индексу в Connections.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 28.06.2011, 23:16   #43
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
я нигде не говорил привязыватся к индексу в Connections
А вот это верно. Верней некуда.
Впрочем ассоциативная история с Пупкиным и иже с ним - она вовсе не тебе была адресована.

Цитата:
я не сказал что это массив
Тогда к чему это

о Господи, вы не знаете что массивы динамические начинаются с нуля?

?

Ассоциация с дин.массивом тут неуместна, потому что индексируемое св-во, вообще говоря, не обязано индексироваться подобно дин.массивам с нуля.

Да и не понимает ТС намеков .. совсем туго у него, с намеками-то)
mss вне форума
Старый 28.06.2011, 23:19   #44
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Ассоциация с дин.массивом тут неуместна, потому что индексируемое св-во, вообще говоря, не обязано индексироваться подобно дин.массивам с нуля.
немного уместна так как оба индексируются с нуля.
и в принципе это дефакто стандарт стал.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 28.06.2011 в 23:23.
Пепел Феникса вне форума
Старый 28.06.2011, 23:22   #45
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
А вот это верно. Верней некуда.
Впрочем ассоциативная история с Пупкиным и иже с ним - она вовсе не тебе была адресована.



Тогда к чему это

о Господи, вы не знаете что массивы динамические начинаются с нуля?

?

Ассоциация с дин.массивом тут неуместна, потому что индексируемое св-во, вообще говоря, не обязано индексироваться подобно дин.массивам с нуля.

Да и не понимает ТС намеков .. совсем туго у него, с намеками-то)
Ладно не нападай на него. Просто коннекшонс начинается с нуля а не с единицы, мы поняли, что это не массив, ну я по крайней мере понял...
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу
rule-z вне форума
Старый 28.06.2011, 23:28   #46
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
немного уместна так как оба индексируются с нуля
Ну это да.
Но сути это не меняет - у ТС, как он утверждает, кроме "мы" к серверу подключается еще и хз что за святой дух

> при подключении, мы видим цифру 2

По барабану кто из них первый по счету или нулевой по индексу - следует бросить на время слепые эксперименты с "посылаю - ничего не приходит" и разобраться наконец хуизху в списке Connetions[] в каждый момент времени.
mss вне форума
Старый 28.06.2011, 23:31   #47
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
я по крайней мере понял
Потрясающе !)
И это в то время как в справке черным по белому написано

Each entry in the Connections array is a TServerClientWinSocket object, where an Index of 0 gives the first TServerClientWinSocket, an Index of 1 returns the second TServerClientWinSocket, and so on.

Цитата:
мы поняли, что это не массив
Как это не массив, если это именно массив ?))))
mss вне форума
Старый 28.06.2011, 23:35   #48
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Потрясающе !)
И это в то время как в справке черным по белому написано

Each entry in the Connections array is a TServerClientWinSocket object, where an Index of 0 gives the first TServerClientWinSocket, an Index of 1 returns the second TServerClientWinSocket, and so on.



Как это не массив, если это именно массив ?))))
Просто ты изначально настроился, на многопользовательскую поддержку приложения, а я пишу только для 2х людей. Поэтому я могу не волноваться, что к васе пупкину подключится митя залупкин...

Не стоит быть таким требовательным. Учти, что я только начал работать с этим. Я многого незнаю.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу

Последний раз редактировалось rule-z; 28.06.2011 в 23:38.
rule-z вне форума
Старый 28.06.2011, 23:50   #49
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
я только начал работать с этим
Как это "только что" ?
А мне вот помнится что ты "шуровал"))))

Цитата:
пишу только для 2х
Ну так и разберись наконец что у тебя за святой дух там присутствует кроме этих двух !!!!!
Какого лешего ты озаботился сообщениями, если ты даже не контролируешь кто у тебя там "лишний" в "онлайн"-списке ?
И я ведь не зря тебе про OnClientConnect и контролю значения ActiveConnections прямо в его обработчике долдоню тут который пост !
Ведь если обнаружено ActiveConnections = 2, то "третьего лишнего" следует тут же пнуть (хоть это и дубовое-кривое решение - приличные P2P-реализации используют механизм условного акцептирования), и для этого вовсе не обязательно лезть в список Connections[], ибо каждый клиент уникально представлен в обработчике события OnClientConnect 2-м параметром-объектом, у которого есть метод Close.

Скажу более - ориентация на использование списка Connections крайне вредна из соображений потенциального перевода сервера в режим thread-blocking. А это перевод наверняка понадобится при потенциальной необходимости одновременного обслуживания немалого множества активных клиентов.

Последний раз редактировалось mss; 28.06.2011 в 23:55.
mss вне форума
Старый 28.06.2011, 23:55   #50
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Как это "только что" ?
А мне вот помнится что ты "шуровал"))))



Ну так и разберись наконец что у тебя за святой дух там присутствует кроме этих двух !!!!!
Какого лешего ты озаботился сообщениями, если ты даже не контролируешь кто у тебя там "лишний" в "онлайн"-списке ?
И я ведь не зря тебе про OnClientConnect и контролю значения ActiveConnections прямо в его обработчике долдоню тут который пост !
Ведь если обнаружено ActiveConnections = 2, то "третьего лишнего" следует тут же пнуть (хоть это и дубовое-кривое решение - приличные P2P-реализации используют механизм условного акцептирования), и для этого вовсе не обязательно лезть в список Connections[], ибо каждый клиент уникально представлен в обработчике события OnClientConnect 2-м параметром-объектом, у которого есть метод Close.
Шуровать я начала это, незадолго до создания этой темы.
Когда просто подключаешься, activeconnections вместо нуля сразу показывает 2.
Хз почему.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу
rule-z вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ClientSocket AlexJan Компоненты Delphi 5 12.09.2010 08:08
ClientSocket misher Общие вопросы Delphi 2 09.07.2010 15:55
ClientSocket и ServerSocket Blood o men Работа с сетью в Delphi 2 25.11.2009 11:36
ClientSocket и TimeOut Powerfull100 Работа с сетью в Delphi 0 22.10.2009 12:29
Проблема с ClientSocket Shouldercannon Работа с сетью в Delphi 1 23.03.2009 14:45