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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 14:21   #1
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию Модем(роутер) и TClientSocket

Добрый день. Сегодня зашел в "веб морду" модема Dlink и, как и должно быть, увидел окошко, куда вводить логин и пароль. Я открываю delphi 7, кидаю на форму TClientSocket, и в событии OnRead записываю в memo пришедшие строки(Html код). В общем вот, что у меня получилось.
Код HTML:
HTTP/1.1 400 Bad Request
Server: micro_httpd
Cache-Control: no-cache
Date: Sat, 01 Jan 2000 00:26:01 GMT
Content-Type: text/html
Connection: close

<HTML><HEAD><TITLE>400 Bad Request</TITLE></HEAD>
<BODY BGCOLOR="#cc9999"><H4>400 Bad Request</H4>
No request found.
<HR>
<ADDRESS><A HREF="http://www.acme.com/software/micro_httpd/">micro_httpd</A></ADDRESS>
</BODY></HTML>
Вот теперь вопросы:
1. Каким образом модем (сервер) заставляет браузер показывать это окно?
2.(приоритетный вопрос) Как мне послать программно модему логин/пароль и узнать результат (верная комбинация или нет).
Буду благодарен.
Изображения
Тип файла: jpg Image.jpg (38.5 Кб, 134 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 03.06.2011 в 14:26. Причина: Добавил вложение
_PROGRAMM_ вне форума Ответить с цитированием
Старый 03.06.2011, 16:48   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
1. Каким образом модем (сервер) заставляет браузер показывать это окно?
Браузер после коннекта к веб-серверу посылает корректный Get-запрос и получает в ответ корректный html-текст страницы, описывающей логин-форму.

А ты невесть что посылаешь веб-серверу после коннекта, на что сервер справедливо дает отлуп "400 плохой запрос"
mss вне форума Ответить с цитированием
Старый 03.06.2011, 16:56   #3
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

А какой Get запрос нужно посылать серверу?
Запросы так отправляют?
Код:
GET / HTTP/1.1
Повторюсь
Цитата:
Как мне послать программно модему логин/пароль и узнать результат (верная комбинация или нет).
Буду благодарен.
Что нужно отправить браузеру, чтобы он выдал окно авторизации

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 03.06.2011 в 18:30.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 03.06.2011, 19:11   #4
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Решил сделать еще один пост.
Я нашел информацию о том, как заставить браузер показать окно авторизации.
Код:
HTTP 401 Unauthorized
Отправив эту строку клиенту, я ничего не увидел. Браузер погрузил, погрузил (как я понял) и в ответ мне выдал, что не может открыть страницу. Думаю, заставив клиента показать это окно, я решу проблему.
По-моему мнению что-то не так при отправлении.
Прикреплю исходник.
Вложения
Тип файла: zip Мой модем.zip (215.4 Кб, 14 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 04.06.2011, 09:05   #5
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
HTTP 401 Unauthorized

Отправив эту строку клиенту, я ничего не увидел
Потому что строка эта не имеет ничего общего с HTTP.
А ин.обмен с веб-сервером на борту твоей железки должен осуществляться именно по протоколу http и никак иначе.
mss вне форума Ответить с цитированием
Старый 04.06.2011, 10:20   #6
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Вы исходник смотрели?
Цитата:
А ин.обмен с веб-сервером на борту твоей железки должен осуществляться именно по протоколу http и никак иначе.
т. е? Я поставил 80 порт. Этого мало? Работаю TClient/TServerSocket. Может быть нужно idHTTP?
-add
Вот я нашел, что на TClient/TServerSocket сокетах тоже делать можно. Только не написано как.

-add2
Когда вообще нужно отправлять сообщение от сервера к клиенту или от клиента к серверу? Можете привести пример на delphi с использованием TClient/TServerSocket?

Спасибо.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 04.06.2011 в 11:50.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 04.06.2011, 15:26   #7
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Вот исходник, который у меня на данный момент. Не понимаю, почему браузер не отображает строку. Клиент и idhttp-server я кинул на форму для своих тестов. На них не обращайте внимания.
Вложения
Тип файла: zip исходник.zip (216.6 Кб, 9 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 04.06.2011 в 15:36.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 04.06.2011, 18:09   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
т. е? Я поставил 80 порт. Этого мало?
порт лишь часть адреса.
нужно соблюдение самого протокола(в википедии есть достаточно)

насчет окна, это не HTML форма. а форма HTTP-авторизации.
про это тоже есть в вики.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.06.2011, 18:42   #9
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
насчет окна, это не HTML форма. а форма HTTP-авторизации.
про это тоже есть в вики.
Можете ссылки накинуть? Я вводил в google запрос "http" и попал на вики, но ничего не понял. Сколько я ни старался, все равно браузер страничку не получает. Есть работающий
исходник?
-add
Спасибо всем. Моя ошибка заключалась в том, что я не закрывал сокет.
Код:
Socket.Close
.
В этом вся проблема. Посмотрю еще, что у меня получится с клиентом.

Отдельное спасибо raxp.

p.s. Вдруг кому-то понадобится - прикрепляю исходник. Опять-таки, idHTTP и TClientSocket там просто так.
Вложения
Тип файла: zip исходник.zip (274.9 Кб, 24 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 04.06.2011 в 19:09.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 04.06.2011, 21:26   #10
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
Вы исходник смотрели?
Нафих мне его смотреть ?
Соизволь процитировать строку http-запроса - тогда и разговор будет серьезный.
mss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
winskock и РОУТЕР spydark91 Работа с сетью в Delphi 43 09.06.2011 00:11
роутер Bustle Компьютерное железо 4 29.12.2010 20:51
Роутер werser Помощь студентам 1 07.03.2010 15:38
Модем роутер Pedro Компьютерное железо 2 06.11.2009 13:35
победить роутер nick2115 Помощь студентам 5 16.11.2008 00:54