Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: 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 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.078 c
2-1342148174
delhpiCasual
2012-07-13 06:56
2013.03.22
Задваивается изображение формы


1-1295718209
VLK32
2011-01-22 20:43
2013.03.22
Как присвоить обобщенную процедуру


2-1340868561
начинающий41
2012-06-28 11:29
2013.03.22
формат даты


15-1349806763
Dimka Maslov
2012-10-09 22:19
2013.03.22
А всё таки почему


15-1341739311
alexdn
2012-07-08 13:21
2013.03.22
Пример сайтов