Конект на socket через proxy
От: Duke_Nuken Украина  
Дата: 02.12.04 14:15
Оценка:
Есть примое соеденение к серваку. ТО есть просто конектимся на отправляеться указаный
серв, отправляем запрос "GET /index.php HTTP/1.0\n\n\" и получаем свою страничку.

        WORD wVersionRequested;
        WSADATA wsaData;
 
        wVersionRequested = MAKEWORD( 2, 2 );
 
           if (WSAStartup( wVersionRequested, &wsaData ))
           {
                  MessageBox ("Ошибка инициализации dll",0,0);        
           }

        // создаем сокет         
           Client_soket = socket(AF_INET, SOCK_STREAM, 0 );

          struct sockaddr_in addr;
          addr.sin_family = AF_INET;
          addr.sin_port = htons (17700);
          addr.sin_addr.s_addr = inet_addr ("192.168.1.19");

          int namelen = sizeof (struct sockaddr_in); //можно написать sizeof(addr) - без разницы

          connect (Client_soket, (struct sockaddr *) &addr, namelen);

          char send_cstr[] = "GET /index.php HTTP/1.0\n\n\";
          int len = strlen(send_cstr);
          
          int sent = send (mysocket, send_cstr, len+1, 0); // client? допустим, мы на сервере! :)

          char get_data_potok[1024];
          int get = recv (mysocket, get_data_potok, sizeof(get_data_potok), 0);

          MessageBox (get_data_potok);


Как такое делатьеся через проксю? ТО есть куда нужно конектиться и как должен выглядеть запрос?
http://FreeMusicLib.com — мой сайт с бесплатной музыкой доступной для скачивания
Re: Конект на socket через proxy
От: Duke_Nuken Украина  
Дата: 02.12.04 15:32
Оценка:
Проблема решена.


        WORD wVersionRequested;
        WSADATA wsaData;
 
        wVersionRequested = MAKEWORD( 2, 2 );
 
           if (WSAStartup( wVersionRequested, &wsaData ))
           {
                  MessageBox ("Ошибка инициализации dll",0,0);        
           }

        // создаем сокет         
          SOCKET mysocket = socket(AF_INET, SOCK_STREAM, 0 );

          struct sockaddr_in addr;
          addr.sin_family = AF_INET;
          addr.sin_port = htons (3127);
          addr.sin_addr.s_addr = inet_addr ("192.168.1.253");

          int namelen = sizeof (struct sockaddr_in); //можно написать sizeof(addr) - без разницы

          connect (mysocket, (struct sockaddr *) &addr, namelen);
          
          char send_reqvest[100] = "GET /index.php HTTP/1.0 \r\nHost: dukes.kiev.ua\n\n";
              
          int len = strlen(send_reqvest);
          
          int sent = send (mysocket, send_reqvest, len+1, 0); // client? допустим, мы на сервере! :)

          char get_data_potok[1024];
          int get = recv (mysocket, get_data_potok, sizeof(get_data_potok), 0);

          MessageBox (get_data_potok);    

          closesocket(mysocket);
http://FreeMusicLib.com — мой сайт с бесплатной музыкой доступной для скачивания
Re: Конект на socket через proxy
От: Кудрявый Россия  
Дата: 02.12.04 21:18
Оценка:
Здравствуйте, Duke_Nuken, Вы писали:

D_N>Есть примое соеденение к серваку. ТО есть просто конектимся на отправляеться указаный

D_N>серв, отправляем запрос "GET /index.php HTTP/1.0\n\n\" и получаем свою страничку.

D_N>бла-бла-бла...

D_N>
D_N> исходный код...

D_N>Как такое делатьеся через проксю? ТО есть куда нужно конектиться и как должен выглядеть запрос?


Надо знать IP-адрес прокси-сервера и порт (обычно 8080, но бывают и другие).

Устанавливаем connect(...) с проксей и передаем ему запрос, причем полный с указанием протокола
(http, ftp и т.д.), dns-имя или IP-адрес сервера со страничкой и путь к страничке, т.е. что-то
типа этого:

"GET http://192.168.1.19/index.php HTTP/1.0\n\n\"
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.