Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2011, 14:59   #1
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию как работать с интернет протоколами и разными прокси

Здравствуйте.
Хочу отправлять разные запросы к серверам через прокси, используя TClientSocket или TSocket.
Но после конекта к прокси идеи кончились)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  WSAData:TWSAData;
  sck:TSocket;
  adr:TSockAddr;
begin
  if WSAStartup($101, WSAData)<>0 then showmessage('winsock error');
  sck:=Socket(2,1,0); 
  adr.sin_family:=2;
  Adr.sin_addr.S_addr:=inet_addr(PChar('137.224.232.104')); 
  Adr.sin_port:=htons(8909); 
  if Connect(Sck,Adr,SizeOf(Adr))<>0 then
  showmessage(inttostr(WSAGetLastError));
end;
код конечно не весь мой, я сам в этом деле очень мало понимаю(
этот метод я взял из статьи и переписал пару строк.
Как я понял он конектится к моей прокси 137.224.232.104:8909 кстати удачно.
Вопрос в том, что я не знаю что нужно сделать что бы законектить прокси к другому серверу и отправлять на него запросы.
И как при этом работать с разными протоколами.
пыжок

Последний раз редактировалось maloun; 06.09.2011 в 15:05.
maloun вне форума Ответить с цитированием
Старый 06.09.2011, 16:09   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

С HTTP прокси работа идёт либо по протоколу, похожему на HTTP, либо через CONNECT (если проки это позволяет).

В первом случае вместо обычного

PHP код:
GET /index.html HTTP/1.0
blah
..blah 
На прокси следует отправлять нечто вроде:

PHP код:
GET borland.com/index.html HTTP/1.0
blah
..blah 
В случае с CONNECT вам открывается сокет на запрошенный хост:порт, и делайте с этим сокетом что хотите.

Если это Socks прокси, то это отдельная песня.

Всё это легко гуглится по запросам HTTP protocol, HTTP Proxy protocol и т.д. Читать развёрнутые лекции со всеми подробностями всех протоколов вряд ли кто-то тут будет, так что задавайте конкретный вопрос по конкретному протоколу, так больше шансов получить полезный ответ.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 06.09.2011, 17:59   #3
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

что если сервер на другом протоколе, в моём случае SMTP
как отправлять запрос?
пыжок
maloun вне форума Ответить с цитированием
Старый 06.09.2011, 18:20   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а для кого написана спецификация протокола ? легко найти в поиске.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.09.2011, 19:52   #5
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

нашёл описания протоколов
http://opds.sut.ru/electronic_manual...3_SMTP.htm#3_6 SMTP
http://angel07.webservis.ru/internet/http.html HTTP

но ещё не понял как нужно составлять запросы

если я делаю конект к смтп серверу то
если брать предложенную профессионалами строку GET borland.com/index.html HTTP/1.0
как образец возникает много вопросов)
mail.ru - или smtp.mail.ru ? /
index.html - а он там есть?
HTTP/1.0 - это для прокси или для сервера c SMTP
что писать что бы отправить команду SMTP серверу?

нашёл такие команды:
EHLO mailFrom@mail.ru CRLF
MAIL FROM : <mailFrom@mail.ru> CRLF
RCPT TO: mailToWho@mail.ru CRLF
DATA CRLF
пыжок

Последний раз редактировалось maloun; 07.09.2011 в 20:26.
maloun вне форума Ответить с цитированием
Старый 07.09.2011, 20:29   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
если я делаю конект к смтп серверу то
то работайте через SMTP протокол, зачем сюда HTTP приплели?
Цитата:
нашёл такие команды:
это команды SMTP
http://ru.wikipedia.org/wiki/SMTP
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.09.2011, 20:45   #7
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
то работайте через SMTP протокол, зачем сюда HTTP приплели?
это команды SMTP
http://ru.wikipedia.org/wiki/SMTP
кажется это лучше чем то что я нашёл

а с прокси можно это сделать ???

я хотел с самого начала делать это через прокси,
нашёл пример с инди компонентами, но про прокси там ничего нет
мне нужно отправлять запросы на SMTP через прокси.
пыжок
maloun вне форума Ответить с цитированием
Старый 07.09.2011, 20:48   #8
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

как вообще работать с прокси?

я думал что:
нужно сделать конект к прокси, отослать запрос на конект к другому (SMTP) серверу
и отправить команду к прокси на отправку команды к SMTP
в команде к прокси указывая команду к SMTP
потом получить ответ от прокси и отправить следующий запрос так же
пыжок

Последний раз редактировалось maloun; 07.09.2011 в 21:15.
maloun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интернет приложения/сайты с разными правами доступа и рассылкой на email MrBrain Помощь студентам 2 22.07.2011 10:35
Работа с протоколами в С++ Magist Общие вопросы C/C++ 0 20.12.2010 03:58
Как писать разными цветами в консоли Ne0nka Помощь студентам 0 26.05.2010 00:47
Как работать с разными окнами? Stilet JavaScript, Ajax 4 25.08.2009 13:05
Как работать с интернет-сервером? peter666 Общие вопросы C/C++ 6 28.02.2009 00:55