Текущий архив: 2003.02.10;
Скачать: CL | DM;
ВнизПомогите написать простенький роутер-прокси Найти похожие ветки
← →
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;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c