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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2014, 00:25   #1
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию Проблема с созданием GET запросов

Всем привет,

долго мучался с разделом куда написать. Решил сюда.


Для начала код:

Код:
void GetRequest(LPCTSTR hostname, LPCTSTR GET)
  {
    WORD v=MAKEWORD(2,0);
    WSADATA d;
    int e=WSAStartup(v,&d);
    struct sockaddr_in peer;
    int s;
    int rc;

    peer.sin_family=AF_INET;
    peer.sin_port=htons(80);
    peer.sin_addr.s_addr=inet_addr(gethostbyname(hostname));
    s=socket(AF_INET,SOCK_STREAM,0);
    char request[256];
    lstrcpy(request, "GET /");
    lstrcat(request, GET);
    lstrcat(request, " HTTP/1.0\r\nHost: ");
    lstrcat(request, hostname);
    lstrcat(request, "\r\nUser-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
    lstrcat(request, "\r\nAccept: */*\r\n\r\n");
    rc=connect(s,(struct sockaddr *)&peer,sizeof(peer));
    rc=send(s,request, sizeof(request),0);
    WSACleanup();    
  }

У меня проблема с

Код:
peer.sin_addr.s_addr=inet_addr(gethostbyname(hostname));
Не хочет компилировать, пишет

Код:
passing arg 1 of `inet_addr' from incompatible pointer type

В чем ошибка? Прошу подредактировать мою функцию под нормальное создание GET запросов.... гуглил гуглил, да ничего толкового не нашел, пришлось самому писать.


Заранее спасибо
Malriser вне форума Ответить с цитированием
Старый 13.02.2014, 01:08   #2
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Уже разобрался.


Работающая функция:

Код:
void GetRequest(LPCTSTR hostname, LPCTSTR GET)
  {
    WORD v=MAKEWORD(2,0);
    WSADATA d;
    int e=WSAStartup(v,&d);
    struct sockaddr_in peer;
    int s;
    int rc;

    peer.sin_family=AF_INET;
    peer.sin_port=htons(80);
    struct hostent *remoteHost;
    remoteHost = gethostbyname(hostname);
    peer.sin_addr.s_addr=inet_addr(inet_ntoa(*( struct in_addr*)remoteHost->h_addr_list[0]) );
    s=socket(AF_INET,SOCK_STREAM,0);
    char request[256];
    lstrcpy(request, "GET /");
    lstrcat(request, GET);
    lstrcat(request, " HTTP/1.0\r\nHost: ");
    lstrcat(request, hostname);
    lstrcat(request, "\r\nUser-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
    lstrcat(request, "\r\nAccept: */*\r\n\r\n");
    rc=connect(s,(struct sockaddr *)&peer,sizeof(peer));
    rc=send(s,request, sizeof(request),0);
    WSACleanup();    
  }
Malriser вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с созданием Handle Miller-1981 C++ Builder 2 23.01.2011 12:43
Нужна помощь с созданием запросов в Access. Julia Gromova Помощь студентам 3 17.07.2009 19:58
Нужна помощь с созданием запросов в Access. Julia Gromova Microsoft Office Access 0 17.07.2009 17:49
нужна помощь с созданием запросов в Access ЮлияС Microsoft Office Access 34 08.07.2009 13:13
Проблема с созданием компонентов dr.Chas Общие вопросы Delphi 4 25.04.2008 20:12