Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Вниз"Общение" сайта и приложения Найти похожие ветки
← →
Fr (2012-09-08 21:53) [0]Есть программка написанная с использованием TServerSocket-TClientSocket. Общаются сервер и клиент между собой без проблем.
Есть, допустим, сайт на html. На одной из страничек кнопка (или ссылка).
Хочется по нажатию на ссылку/кнопку/... на этом сайте послать сообщение TServerSocket, а от него получить информацию (например, табличку) и вывести ее на новой страничке (или в этой же) ....
Вопрос - как и с помощью чего это сделать?
← →
Медвежонок Пятачок © (2012-09-08 22:43) [1]серверсокет запущен у бабушки в зажопинске.
страничка хостится в лондоне.
вопрос:
как лондонский вебмастер узнает ип бабушкиного серверсокета из зажопинска (чтобы его ссылка вела к бабушке, или кнопка форм акшон смотрел тоже на бабушку)
?
← →
Fr (2012-09-08 23:45) [2]Зачем брать крайности? Предположим, что лондонский вебмастер позвонил бабушке и узнал ип:порт сервера.
Что он должен отправить этому серверу и что будет ожидать от него? В каком формате? Ответ должен быть текстом html страницы, файлом или еще чем-нибудь?
Дайте, плиз, ссылки на описание принципа реализации всего этого. Или сами на пальцах объясните чайнику :)
← →
Медвежонок Пятачок © (2012-09-08 23:49) [3]он ничего не должен отправлять этому серверу.
тем более, что делать это будет браузер, который и не в лондоне и не в зажопинске, а в занзибаре запущен.
а вебмастер должен только поставить линк на странице на твою бабушку в зажопинске, чтобы браузер из занзибара послал запрос на серверсокет бабушки.
← →
Palladin © (2012-09-09 00:00) [4]кнопку нажимает хомяк в бровзере, бровзер отправляет запрос серверу
запрос всегда хттп
если не рассматривать хтмл5
хттп запрос практически всегда уходит серверу-автору хтмл страницы, можно добиться конечно обращений к другим серверам, но они будут все равно хттп
конечно может вдруг заработать какой нибудь жопошный плюгин к бровзеру и не начать исполнять продукты жизнедеятельности вида "программка написанная с использованием TServerSocket-TClientSocket"
← →
Fr (2012-09-09 00:34) [5]Попробую задать вопрос иначе. Например:
В строке браузера вводим "localhost:5000/?table"
Сервер на localhost обрабатывает сообщение "?table", набирает данные для заполнения таблицы.
Что он должен послать браузеру, чтобы тот отобразил страничку с таблицей на ней?
← →
Медвежонок Пятачок © (2012-09-09 00:36) [6]как что.
веб-страницу вестимо.
целиком.
← →
Медвежонок Пятачок © (2012-09-09 00:40) [7]а перед тем как страницу, еще и заголовок ответа.
← →
Palladin © (2012-09-09 00:55) [8]
> Что он должен послать браузеру, чтобы тот отобразил страничку
> с таблицей на ней?
http://www.w3.org/Protocols/rfc2616/rfc2616.html
← →
Fr (2012-09-09 01:17) [9]т.е. примерно так? :
vServerSocket.Socket.Connections[i].SendText(
"HTTP/1.0 200 OK"+#$0D+#$0A+
"Имя сервера"+#$0A+
"Connection: close"+#$0A+
#$0D+#$0A+
"<html>....</html>" );
← →
Anatoly Podgoretsky © (2012-09-09 07:50) [10]> Fr (09.09.2012 01:17:09) [9]
Кажется это не соответствует стандарту на html
← →
Fr (2012-09-10 09:04) [11]
> Кажется это не соответствует стандарту на html
Это замечание относится к<html>....</html>
?
Сам принцип правилен?:
- можно отослать с помощью SendText TServerSocket;
- сначала заголовок ответа
- потом содержимое страницы, что должна быть выведена, в формате HTML
← →
Дмитрий С © (2012-09-10 09:41) [12]
> vServerSocket.Socket.Connections[i].SendText(
> "HTTP/1.0 200 OK"+#$0D+#$0A+
> "Host: Имя сервера"+#$0D+#$0A+
> "Connection: close"+#$0D+#$0A+
> #$0D+#$0A+
> "<html>....</html>" );
← →
Anatoly Podgoretsky © (2012-09-10 09:45) [13]
> Это замечание относится к
> <html>....</html>
Это относится ко всему приведенному тексту.
Читай спецификацию.
← →
Dennis I. Komarov © (2012-09-10 21:13) [14]
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("");
Вроде того...
← →
Медвежонок Пятачок © (2012-09-10 22:01) [15]а вот и фик
← →
Медвежонок Пятачок © (2012-09-10 22:05) [16]комбинация кипалайв + контентленс меньший на два байта реального, приведет к тому, что браузер получит в ответ на следующий запрос заголовок, начинающийся на CRLF
← →
Dennis I. Komarov © (2012-09-10 23:10) [17]
> Медвежонок Пятачок © (10.09.12 22:05) [16]
Уверен? Ведь после tcp рвется... Не буду спорить, надо rfc глянуть. Вот пусть ТС этим и займется...
http://rfc2.ru/2068.rfc
← →
Медвежонок Пятачок © (2012-09-10 23:13) [18]Уверен?
Если сервер фломастером на пузе написал, что у него кипалайв.
Зачем после этого браузеру рвать коннект?
← →
Медвежонок Пятачок © (2012-09-10 23:15) [19]в любом случае у тебя сервер отдает на два байта больше чем пообещал
← →
Dennis I. Komarov © (2012-09-10 23:24) [20]
> Если сервер фломастером на пузе написал, что у него кипалайв.
А он ТС и не нужен :) эт я скопипастил со старого проекта :)
> в любом случае у тебя сервер отдает на два байта больше
> чем пообещал
Вообщем я с тобой согласен. Только когда ковырялся с ним, не припомню, я такого. Хотя, софт уже года три-пять как не используется...
← →
KSergey © (2012-09-11 12:26) [21]Fr,
вы хотите сделать работающее решение и использовать его, еще задача в том, чтобы поразбираться с реализацией протокола HTTP руками?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.083 c