Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Вниз

Помогите написать простенький роутер-прокси   Найти похожие ветки 

 
vogus   (2002-12-17 17:09) [0]

Надо написать, что-то типо простенького роутер-прокси. Я не силен в использовании компанент TServerSocket, TClientSocket, но думаю их будет вполне достаточно. Надо что-бы программа сканировала определенный порт, при получении запроса от клиента перепровляла его дальше (на какой-то другой сервер), а при получении ответа от сервера анализировала его и в зависимости от ответа передавала бы определенную информации клиенту.
Вот и все!


 
Digitman   (2002-12-17 17:13) [1]

и какой же помощи ты ожидаешь ?


 
vogus   (2002-12-17 17:25) [2]

Примерчик! Как например, через этот прокси прокинуть запрос от клиента до какого-то сервера, а ответ от сервера передать клиенту?


 
Zz_   (2002-12-17 17:29) [3]

http://www.uinc.ru/articles/24/index.shtml


 
Digitman   (2002-12-17 17:38) [4]

Сомневаюсь, что ты в "примерчике" разберешься) .. забомбишь ведь вопросами типа "а это что", "а это тут зачем" .. сам ведь говоришь, что

> не силен в использовании компанент TServerSocket, TClientSocket


м.б., лучше поспрашивать о назначении и последовательности использования тех или иных методов/свойств/событий этих компонентов ? разберешься что к чему - глядишь, и сам сотворишь прокси и вопрос отпадет за ненадобностью.

Подумай, не лучше ли так поступить для начала ... Все-таки прокси (особенно - в условиях глоб.сети) - штука не такая уж тривиальная...


 
vogus   (2002-12-17 17:39) [5]

2 Zz_
Спасибо!

Если не будет предложений с TServerSocket (я думаю это будет проще) буду разбираться с этим!


 
vogus   (2002-12-17 17:52) [6]

2 Digitman

Я взял ткнул на форму TServerSocket и Memo1, поставил Port=3128, в IE прописал работать через прокси 127.0.0.1:3128. Запустил прогу - по методу

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;


В адресной строке IE написал: http://www.uinc.ru/articles/24/index.shtml

Получил в Memo1:

GET http://www.uinc.ru/articles/24/index.shtml HTTP/1.0
Accept: */*
Referer: http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1040134157&n=4
Accept-Language: ru
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2)
Host: www.uinc.ru


Вопрос как это доставить по адресу, а полученный ответ отправить в IE?



 
Reindeer Moss Eater   (2002-12-17 18:02) [7]

Создать TClientSocket, соединиться с www.uinc.ru и отправить все что получил


 
vogus   (2002-12-17 18:06) [8]

а полученный ответ отправить в IE?


 
Reindeer Moss Eater   (2002-12-17 18:08) [9]

Любой из методов записи TServerSocket


 
vogus   (2002-12-17 18:23) [10]

Создал TClientSocket, Host=www.uinc.ru

Дописал:

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
ClientSocket1.Socket.SendText(Socket.ReceiveText);
end;

и

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;

А где ответ от www.uinc.ru, я его не вижу, где-что надо еще дописать?


 
Reindeer Moss Eater   (2002-12-17 18:27) [11]

А где ты пробуешь с ним соединиться? И по какому порту?


 
vogus   (2002-12-17 18:37) [12]

Port=80

А на форме есть Button1, для которого
procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.Caption = "Слушать порт" then
Button1.Caption := "Отключить"
else
Button1.Caption := "Слушать порт";
ServerSocket1.Active := not ServerSocket1.Active;
ClientSocket1.Active := not ClientSocket1.Active;
end;

при создании все не активны!


 
Reindeer Moss Eater   (2002-12-17 18:49) [13]

Разбей задачу на части.
Часть первая - отправка HTTP запроса и чтение ответа.
Заодно почитай архив этого форума. Там про OnRead целые тома написаны



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
14-29087
VinRaider
2003-01-24 10:49
2003.02.10
Обладателям Delphi6-7


6-28967
кондратий
2002-12-18 20:14
2003.02.10
как подключитса к инету програмно...


1-28870
SergeN
2003-01-30 14:27
2003.02.10
Winrar


1-28831
TimonSoft
2003-02-02 19:20
2003.02.10
Помогите разобраться с KeyPress в Edit.


3-28675
Кира
2003-01-24 14:27
2003.02.10
Файл с расширением





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский