Вниз
Скачать: CL | DM;

"Общение" сайта и приложения   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.5 MB
Время: 0.049 c
3-1277797743
Axe
2010-06-29 11:49
2013.03.22
ошибка поключения Ms Sql


15-1334583721
Андреевич
2012-04-16 17:42
2013.03.22
Узнать когда был выход из ждущего режима


15-1336681802
Юрий
2012-05-11 00:30
2013.03.22
С днем рождения ! 11 мая 2012 пятница


15-1330287987
Дмитрий С
2012-02-27 00:26
2013.03.22
Меня иногда удивляет, как можно придумывать вообще такое?


15-1333975733
MBo
2012-04-09 16:48
2013.03.22
Delphi XE. Окно Watch List.




   Наверх