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

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

"Общение" сайта и приложения [D7]


Страницы:   1 2

Fr ©   (2012-09-08 21:53:00) 

Есть программка написанная с использованием TServerSocket-TClientSocket. Общаются сервер и клиент между собой без проблем.
Есть, допустим, сайт на html. На одной из страничек кнопка (или ссылка).
Хочется по нажатию на ссылку/кнопку/... на этом сайте послать сообщение TServerSocket, а от него получить информацию (например, табличку) и вывести ее на новой страничке (или в этой же) ....

Вопрос - как и с помощью чего это сделать?


KSergey   (2012-09-11 12:26:00) [1]

Fr,
вы хотите сделать работающее решение и использовать его, еще задача в том, чтобы поразбираться с реализацией протокола HTTP руками?


Dennis I. Komarov   (2012-09-10 23:24:00) [2]


> Если сервер фломастером на пузе написал, что у него кипалайв.

А он ТС и не нужен :) эт я скопипастил со старого проекта :)

> в любом случае у тебя сервер отдает на два байта больше
> чем пообещал

Вообщем я с тобой согласен. Только когда ковырялся с ним, не припомню, я такого. Хотя, софт уже года три-пять как не используется...


Медвежонок Пятачок   (2012-09-10 23:15:00) [3]

в любом случае у тебя сервер отдает на два байта больше чем пообещал


Медвежонок Пятачок   (2012-09-10 23:13:00) [4]

Уверен?
Если сервер фломастером на пузе написал, что у него кипалайв.
Зачем после этого браузеру рвать коннект?


Dennis I. Komarov   (2012-09-10 23:10:00) [5]


> Медвежонок Пятачок ©   (10.09.12 22:05) [16]

Уверен? Ведь после tcp рвется... Не буду спорить, надо rfc глянуть. Вот пусть ТС этим и займется...
http://rfc2.ru/2068.rfc


Медвежонок Пятачок   (2012-09-10 22:05:00) [6]

комбинация кипалайв + контентленс меньший на два байта реального, приведет к тому, что браузер получит в ответ на следующий запрос заголовок, начинающийся на CRLF


Медвежонок Пятачок   (2012-09-10 22:01:00) [7]

а вот и фик


Dennis I. Komarov   (2012-09-10 21:13:00) [8]


   ClientSocket.Sendln('HTTP/1.1 200 OK');
   ClientSocket.Sendln('Server: QuickFTP');
   ClientSocket.Sendln('Accept-Ranges: bytes');
   ClientSocket.Sendln('Keep-Alive: timeout=5, max=100');
   ClientSocket.Sendln('Connection: Keep-Alive');
   ClientSocket.Sendln('Content-Type: text/html');
   ClientSocket.Sendln('Content-Length: ' + IntToStr(Length(HTTPContent.Text)));
   ClientSocket.Sendln('');
   ClientSocket.Sendln(HTTPContent.Text);
   ClientSocket.Sendln('');

Вроде того...


Anatoly Podgoretsky   (2012-09-10 09:45:00) [9]


> Это замечание относится к
> <html>....</html>

Это относится ко всему приведенному тексту.
Читай спецификацию.


Дмитрий С   (2012-09-10 09:41:00) [10]


> vServerSocket.Socket.Connections[i].SendText(
>  'HTTP/1.0 200 OK'+#$0D+#$0A+
>  ' Host: Имя сервера'+#$0D+#$0A+
>  'Connection: close'+#$0D+#$0A+
>  #$0D+#$0A+
>  '<html>....</html>' );


Fr   (2012-09-10 09:04:00) [11]


> Кажется это не соответствует стандарту на html

Это замечание относится к
<html>....</html>
?

Сам принцип правилен?:
- можно отослать с помощью SendText TServerSocket;
- сначала заголовок ответа
- потом содержимое страницы, что должна быть выведена, в формате HTML


Anatoly Podgoretsky   (2012-09-09 07:50:00) [12]

> Fr  (09.09.2012 01:17:09)  [9]

Кажется это не соответствует стандарту на html


Fr   (2012-09-09 01:17:00) [13]

т.е. примерно так? :

vServerSocket.Socket.Connections[i].SendText(
 'HTTP/1.0 200 OK'+#$0D+#$0A+
 'Имя сервера'+#$0A+
 'Connection: close'+#$0A+
 #$0D+#$0A+
 '<html>....</html>' );


Palladin   (2012-09-09 00:55:00) [14]


> Что он должен послать браузеру, чтобы тот отобразил страничку
> с таблицей на ней?


http://www.w3.org/Protocols/rfc2616/rfc2616.html


Медвежонок Пятачок   (2012-09-09 00:40:00) [15]

а перед тем как страницу, еще и заголовок ответа.


Медвежонок Пятачок   (2012-09-09 00:36:00) [16]

как что.
веб-страницу вестимо.
целиком.


Fr   (2012-09-09 00:34:00) [17]

Попробую задать вопрос иначе. Например:
В строке браузера вводим "localhost:5000/?table"
Сервер на localhost обрабатывает сообщение "?table", набирает данные для заполнения таблицы.
Что он должен послать браузеру, чтобы тот отобразил страничку с таблицей на ней?


Palladin   (2012-09-09 00:00:00) [18]

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

конечно может вдруг заработать какой нибудь жопошный плюгин к бровзеру и не начать исполнять продукты жизнедеятельности вида "программка написанная с использованием TServerSocket-TClientSocket"


Медвежонок Пятачок   (2012-09-08 23:49:00) [19]

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

а вебмастер должен только поставить линк на странице на твою бабушку в зажопинске, чтобы браузер из занзибара послал запрос на серверсокет бабушки.


Fr   (2012-09-08 23:45:00) [20]

Зачем брать крайности? Предположим, что лондонский вебмастер позвонил бабушке и узнал ип:порт сервера.
Что он должен отправить этому серверу и что будет ожидать от него? В каком формате? Ответ должен быть текстом html страницы, файлом или еще чем-нибудь?
Дайте, плиз, ссылки на описание принципа реализации всего этого.  Или сами на пальцах объясните чайнику :)


Страницы:   1 2

Наверх

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