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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2010, 04:07   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Здравствуйте.
Есть idTCPClient (indy 10) максимальное количество подключений ну скажем 5. Есть многомерный масив скажем
Код:
mas:array [n..m][n1..m1]of boolean;
n>=1<=m<=10
n1 и m1 должны задаваться следующим образом, если к серверу подключается новый клиент то для него создаются отдельные элементы
тоесть для первого клиента массив будет иметь вид mas[1..10][1]
для второго mas[1..10][2] и т.д.
Вопрос в том что как определить количество клиентов в TCPServer и обращаться и менно к нужному элементу массива тоетсь Клиент[i] = mas[1.10][i]

смог отрыть код при помощи которого можно узнать количество подключенных пользователей.
Код:
TCPServer.Context.LockList.Count //выводит количество подключенных клиентов.
Когда происходит событие сервера OnExecute как узнать какой именно клиент из этого списка его вызывает

Последний раз редактировалось Stilet; 27.10.2010 в 09:08.
Lokos вне форума Ответить с цитированием
Старый 26.10.2010, 09:25   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

А может по ip адресу в Execute ?

Код:
AContext.Connection.Socket.Binding.PeerIP
А если из названии темы то в динамический массив в и
Код:
SetLength 
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)

Последний раз редактировалось BARNEY; 26.10.2010 в 09:27.
BARNEY вне форума Ответить с цитированием
Старый 26.10.2010, 09:27   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
А может по ip адресу в Execute ?

Код:
AContext.Connection.Socket.Binding.PeerIP
А если из названии темы то в динамический массив в и
не слишком удобно

Цитата:
Сообщение от BARNEY Посмотреть сообщение
А может по ip адресу в Execute ?

Код:
AContext.Connection.Socket.Binding.PeerIP
А если из названии темы то в динамический массив в и
Код:
SetLength 
понятно что в динамический массив. Проблема в том чтоб как узнавать какой из клиентов вызывает у сервера событие OnExecute чтоб ему соответствовал свой элемент массива

Последний раз редактировалось Stilet; 26.10.2010 в 11:15.
Lokos вне форума Ответить с цитированием
Старый 26.10.2010, 10:18   #4
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

по моему вообще проблемы нет загоняем ip адреса в массив
при обращении смотрим какой ip ищем его в массиве и общаемся дальше.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 26.10.2010, 10:25   #5
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
по моему вообще проблемы нет загоняем ip адреса в массив
при обращении смотрим какой ip ищем его в массиве и общаемся дальше.
ну допустим я там сделаю проверку на ип и ип нужный делать определенные действия. А если я тестирую на одной машине то ип будут одинаковые
Более все это мучу кручу в одном проекте, тоесть у меня на форме 3 клиента и один сервак, ип хоть как будет одинаковый. Как быть в такой ситуации
Lokos вне форума Ответить с цитированием
Старый 26.10.2010, 10:30   #6
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

А работать она тоже будет в 3 окна на 1 машине?
Если тестить проги сетевые, минимум заведите вирт машинку...поднимается все минут за 10. И хоть какие ip присваивайте.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 26.10.2010, 10:33   #7
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
А работать она тоже будет в 3 окна на 1 машине?
Если тестить проги сетевые, минимум заведите вирт машинку...поднимается все минут за 10. И хоть какие ip присваивайте.
ну с вирт машиной это ясно, нет работает все в одном окне.
Lokos вне форума Ответить с цитированием
Старый 26.10.2010, 10:55   #8
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

вопрос что делать если клиенты за прокси... тогда да проблема актуально.... но думаю тогда проще клинтов отличать не по ip а по не кому уникальному коду.Т.е. сообщать его с начало в сообщении и дальше вести обработку. Либо садить всех на отдельные порты.

з.ы. Исправьте название темы, вопрос совершенно другой.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 27.10.2010, 02:53   #9
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

как исправить вопрос темы? что то я не знаю
походу прийдется возится в ручную с индефикатором
Lokos вне форума Ответить с цитированием
Старый 28.10.2010, 14:00   #10
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

по экспериментировал, при подключение клиента ему создается отдельный поток по этому можешь отвечать тому клиенту которые обратился на сервер без идентификатора.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графический редактор - добавление нового класса vandrouny Общие вопросы .NET 4 12.10.2010 20:19
Добавление нового ресурса в exe шник MVX Помощь студентам 19 06.08.2010 11:19
Добавление нового шрифта Alex2009 Общие вопросы Delphi 1 24.04.2010 13:46
добавление нового типа данных Sparky Помощь студентам 10 07.04.2010 11:10
Регистрация нового пользователя и привязка новой таблицы к логину 4sense БД в Delphi 1 02.03.2010 22:27