![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
"Общение" сайта и приложения [D7]
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 страницы, файлом или еще чем-нибудь?
Дайте, плиз, ссылки на описание принципа реализации всего этого. Или сами на пальцах объясните чайнику :)