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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2011, 16:30   #11
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
1. Это не идентификация, а авторизация.
Вот для того, чтобы юзеры могли заходить с любого адреса и желательно знать, какой адрес связан с каким клиентом на данный момент.
2. Это уникальный номер юзера в системе. Первичный ключ в терминах БД. Всегда легче работать с целыми числами, чем со строками.
Это не идентификация, а авторизация - загнался...извиняюсь

1. А если пользователи ходят через прокси - у них у всех одинаков адрес будет, что тогда?
2. Да знаю я что такое ID, имелось ввиду ID узера или при подключении создается ID на сокете сервера?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 21.01.2011, 16:33   #12
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

1. Нет, IP будет одинаковый, а порт разный.
2. Глобальный ID. Юзеры (по крайней мере их хешированные пароли) у вас на сервере уже хранятся, вот рядом и ID храните.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 21.01.2011, 16:52   #13
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Я извиняюсь за то что надоедаю но прогр-ем сетей у меня туго, отсюда и вопросы.

Цитата:
Сообщение от veniside Посмотреть сообщение
1. Нет, IP будет одинаковый, а порт разный.
2. Глобальный ID. Юзеры (по крайней мере их хешированные пароли) у вас на сервере уже хранятся, вот рядом и ID храните.
1. какой ввиду имеется порт? все клиенты конектятся на один порт (порт TServerSocket стоит 9707 и у всех клиентов TClientSocket тот же, инача вылетает в ошибку). Но это не столь важно, вопрос остается тот же : как определить что последний активный клиент прислал подтверждение (не важно, ник, ID или что-то другое)?, я ж со стороны сервера не могу определить этот ник или ID клиента без его ответа(адрес да, что мне не подходит), или при конекте на сервер "ServerSocket1.Socket.Connectio ns[i]" этому конекту присваевается ID?
2. Их все равно придется опрашивать и дожидаться ответа пользователя, отсюда опять теде грабли, определение что все активные конекти ответили...
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 21.01.2011, 17:18   #14
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

1. Порт у сервера может и один, а вот у каждого клиента будут разными либо IP, либо порт, либо и то и то. И это очень важно, т.к. позволяет уникально идентифицировать клиента, зная только его текущие IP : port. В принципе, эту пару (IP : port) можно считать уникальным ID клиента в текущей сессии, раз уж у вас клиентам не присвоены ID изначально.

2. Не надо никого опрашивать, пожалейте каналы и процессорное время. Любое действие клиента мнгновенно идентифицируется по его IP : port, и всё обновление сводится к тому, что у клиента с IP : port такими-то сменился статус, ник, или от него пришло сообщение или ещё что угодно.

Просто с парой IP : port не так удобно работать, как с простым числовым ID, поэтому я и предложил сразу их связывать при начале киентской сессии.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 21.01.2011, 17:38   #15
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

ПОРТ должен совпадать - иначе ошибка...
HOST (IP) если через прокси - тоже совпадают

1. Блин..............
ClientSocket.Address действительно при подключении роли не играет...я думал он должен совпадать с хостом...
Это получается Address может быть уникальным значением?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!

Последний раз редактировалось spirit-ua; 21.01.2011 в 17:40.
spirit-ua вне форума Ответить с цитированием
Старый 21.01.2011, 17:41   #16
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Если бы пара IP : port была бы не уникальна для каждого клиента, ни о каком обмене сообщениями между сервером и клиентом говорить не приходилось бы. (Не рассматриваем случаи с multicast/broadcast, т.к. у вас TCP сокеты). Нужно только учитывать, что эта пара (IP : port) становится известной на сервере только после подключения клиента.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 21.01.2011 в 17:49. Причина: немного дополнил
veniside вне форума Ответить с цитированием
Старый 25.01.2011, 13:05   #17
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

veniside действительно - порт отличается, я думал что это порт который указывается в клиенте при соединениии, получается что я ошибался...спасибо за помощь!

Но RemotePort каждый раз увеличивается на 1
отсюда вопрос:
1. куда сохраняется счетчик
2. как собственно присваевается номер порта для каждого соединения (начальный и конечный номер, диапазон)
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 25.01.2011, 13:35   #18
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

1. "Есть жизнь на Марсе.. нет жизни Марсе.. а, впроочем, какая разница."
Ну реально, а не пофиг ли, где он там сохраняется? Тем более, что никакого счётчика нет, так что и сохранять нечего )

2. Берётся первый случайный из любого незанятого. То, что сейчас, в данной версии винды, он почему-то там иногда увеличивается именно на 1 ничего не значит.
Диапазон примерно от 1024 до 65535. И нет, если дойдёт до 65535 винда не сломается. И сокеты не упадут. Возмёт очередной случайный неиспользуемый.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 27.01.2011, 10:08   #19
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Берётся первый случайный из любого незанятого.
Этот порт устанавливается со стороны клиента или сервер у себя выдает каждому подключившемуся клиенту?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 27.01.2011, 11:10   #20
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

> Этот порт устанавливается со стороны клиента

Каждая из сторон потенц.соединения самостоятельно устанавливает свой порт, тем самым однозначно идентифицируя себя в совокупности с IP-адресом сетевого интерфейса, через который будет осуществляться потенц.соединение.

Однозначная идентификация АДРЕС:ПОРТ - это наиважнейший принцип организации протокола IP.
mss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ServerSocket MyIE Работа с сетью в Delphi 9 24.06.2010 00:11
Есть ли у IdTCPServer такое свойство как у ServerSocket: ServerSocket.Socket.ActiveConnectio ns? TwiX Работа с сетью в Delphi 3 07.03.2010 14:28
ServerSocket HTL Работа с сетью в Delphi 2 02.01.2010 22:40
ClientSocket и ServerSocket Blood o men Работа с сетью в Delphi 2 25.11.2009 11:36
Вопрос по ServerSocket. maks448 Работа с сетью в Delphi 3 29.04.2009 08:56