Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.058 c
2-1340128237
karambos
2012-06-19 21:50
2013.03.22
Работа с TBitMap


15-1350765004
Юрий
2012-10-21 00:30
2013.03.22
С днем рождения ! 21 октября 2012 воскресенье


15-1329862645
Дмитрий С
2012-02-22 02:17
2013.03.22
Спам


15-1333528430
Дмитрий С
2012-04-04 12:33
2013.03.22
SizeOf( ж );


2-1339657502
AntiUser
2012-06-14 11:05
2013.03.22
Как правильно создать наследников фрейма





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский