Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как подключить нескольких клиентов? [D6, D7, Win2k, WinXP]


Plotnick ©   (2008-07-06 16:09:00) 

Есть задача - подключение к интернет-серверу с несколькими клиентами. Собственно, для каждого подключения создаю своего HTTP-клиента и по очереди подключаю. Но после того, как подключу первого (там есть авторизация - логин, пароль) все остальные при подключении к серверу, уже считаются подключенным с логином, паролем первого.
То есть, видимо как-то первым клиентом держится подключение что ли со всеми параметрами. А как бы так сделать, чтобы раздельно? И при этом, чтобы для каждого клиента соединение держалось?


plotnick   (2008-07-09 14:13:00) [1]

Только уточнить хочу, не "коннектиться перестал", а "логиниться перестал". Хотя в моем случае возможно, что и без разницы. Ладно, спасибо, попробую idhttp


umbra   (2008-07-08 23:52:00) [2]


> Пробовал ставить wHttpIo_No_cookies - вообще коннектиться
> перестал.


Значит сервер таки выдает куки.
Похоже, что ваш компонент - это некий наследник TWebBrowser, что означает общие куки. Используйте не браузер, а хттп-клиент типа TIdHTTP


Plotnick   (2008-07-08 19:53:00) [3]

У самого компонента не так много свойств, чтобы поиграться.

wHttpIo_Async,                    
wHttpIo_From_Cache,                
wHttpIo_Offline,
wHttpIo_Cache_if_net_fail,        
wHttpIo_Hyperlink,                
wHttpIo_Ignore_cert_cn_invalid,    
wHttpIo_Ignore_cert_date_invalid,  
wHttpIo_Ignore_redirect_to_http,  
wHttpIo_Ignore_redirect_to_https,  
wHttpIo_Keep_connection,          
wHttpIo_Need_file,                
wHttpIo_No_auth,                  
wHttpIo_No_auto_redirect,
wHttpIo_No_cache_write,
wHttpIo_No_cookies,
wHttpIo_No_ui,
wHttpIo_Pragma_nocache,
wHttpIo_Reload,
wHttpIo_Resynchronize,
wHttpIo_Secure

Пробовал ставить wHttpIo_No_cookies - вообще коннектиться перестал. По умолчанию также у него устанавливается wHttpIo_Keep_connection.


Plotnick   (2008-07-08 19:07:00) [4]

Ну вот проверил сервер. То есть вошел с разных браузеров под разными логинами. Нормально все.


umbra   (2008-07-08 16:33:00) [5]

или сервер принимает только одну сессию от айпи. или по рефереру определяет, что это тот же клиент.


umbra   (2008-07-08 16:31:00) [6]

очевидно, где-то засела кука, которую видят и используют все клиенты


plotnick   (2008-07-08 16:25:00) [7]

Для начала тогда механизм, наверное имеет смысл.

Для проверки подключен клиент или нет вызывается
Get('сайт/my.html')

Если подключен, то возвращается страничка пользователя.
Если не подключен, то возвращается страничка в которой нужно вводить логин и пароль. Ну соответственно вызывается
Post('сайт/login.html',varlist)

где varlist - список переменных (логин, пароль и т.д.)

Если все успешно, то опять-таки возвращается страничка пользователя.

Далее проверяю подключение следующего клиента, то есть вызываю
Get('сайт/my.html')

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

То есть, получается возможным подключение только одного клиента в один момент времени. Для того, чтобы подключить следующего, надо сделать
Get('сайт/logout.html')

Тогда при следующем подключении выдаст страничку с логином и паролем.
Вот.


umbra   (2008-07-07 23:28:00) [8]


> Конечно, расчитывать, что каждый в курсе, что за компоненты
> я юзаю глупо, но я думаю, что дело тут не в каком-то конкретном
> компоненте, а в каких-то опциях с которыми компонент подключается
> к инету

Дело непонятно в чем. Можете предоставить логи хттп-запросов от ваших клиентов к серверу?


Plotnick   (2008-07-07 20:24:00) [9]

Ну есть компонент TAlWinInetHttpClient
Создаю динамически несколько экземпляров. С одного через Post вхожу на сайт передавая логин и пароль. Он естественно считается подключенным уже и возвращает страничку пользователя.

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

А хотелось бы чтобы каждый мог подключиться с каким-то своим логином и паролем и работал как отдельный пользователь сайта.

Вот не знаю как это сделать.

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


Поросенок Винни-Пух   (2008-07-07 11:12:00) [10]

Но после того, как подключу первого (там есть авторизация - логин, пароль) все остальные при подключении к серверу, уже считаются подключенным с логином, паролем первого.

Зачем считаются?


umbra   (2008-07-07 10:54:00) [11]


> Но после того, как подключу первого (там есть авторизация
> - логин, пароль) все остальные при подключении к серверу,
>  уже считаются подключенным с логином, паролем первого.
> То есть, видимо как-то первым клиентом держится подключение
> что ли со всеми параметрами. А как бы так сделать, чтобы
> раздельно? И при этом, чтобы для каждого клиента соединение
> держалось?
>

что собой представляет клиент?


Наверх

Титульная страница Поиск, карта сайта Написать письмо