Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> посылка GET метода И прием ответа 
:(
    Опции темы
intervisionist
  Дата 23.8.2009, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.1.2009

Репутация: нет
Всего: нет



Писал информер определенной страницы.
Код


#define request    
"GET schedule/1/0/1080/1080.htm HTTP/1.1\
r\nAccept: */\r\nAccept-Language: ru
\r\nAccept-Encoding: deflate
\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2)
\r\nHost: www.ifmo.ru
\r\nConnection: Keep-Alive\r\n\r\n" //" // HTML запрос.
#define MAX_PACKET_SIZE        6655


WSADATA        ws;
    SOCKET        s;
    sockaddr_in    adr;
    hostent*    hn;
    char        buff [MAX_PACKET_SIZE];

    // Init 
    if (WSAStartup (0x0101, &ws) != 0)
    {
        Form3->Close();    // Error

    }
    
    // Создаём сокет
    if (INVALID_SOCKET == (s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP) ) )
    {
        Form3->Close();    // Error
    }

    // Получаем адрес
    if (NULL == ( hn = gethostbyname ("www.ifmo.ru") ) )
    {
        // Error
        Form3->Close();
    }

    // Заполняем  поля структуры adr для использование ее в connect
    adr.sin_family                = AF_INET;
    adr.sin_addr.S_un.S_addr    = *(DWORD* ) hn->h_addr_list[0];
    adr.sin_port                = htons (80);

    // Устанавливаем соединение с сервером
    if (SOCKET_ERROR == connect (s, (sockaddr* )&adr,  sizeof (adr) ) )
    {
        // Error
    Form3->Close();
    }

    // Посылаем запрос серверу
    if (SOCKET_ERROR == send (s, request, sizeof (request), 0) )
    {
        // Error
   Form3->Close();
    }

    // Ждём ответа
    int len = recv (s, buff, MAX_PACKET_SIZE, 0);

    if ( (len == SOCKET_ERROR) || (len == 0) )
    {
        // Error
        Form3->Close();
    }
    //AnsiString text
    // Выводим ответ сервера
    //char key[5] =["5",">","<","h","3",">"];
    for ( int i = 0; i <len ; i++) {

    if ((buff[i]=='5') && (buff[i+1]=='>')) {// && (buff[i+2]=='<') &&(buff[i+3]=='h')) {

            Form3->Close();
    }


    }
         //outFile( " ololo.txt " );  
    if (SOCKET_ERROR == closesocket (s) )    // закрываем соединенеие. *
    {

    }


Однако принимает ответ не полный (гдето половину), притом если отправить с помощью HTTPAnalyz приходит полный ответ.

Где ошибка не понимаю?! smile 
PM MAIL   Вверх
GrayCardinal
Дата 23.8.2009, 12:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 3
Всего: 58



intervisionist
1. не sizeof(request) а strlen(request)
2. "Accept-Encoding: deflate" Что-то не вижу где результат распаковывается smile А сжимается он примерно в два раза smile



Это сообщение отредактировал(а) GrayCardinal - 23.8.2009, 12:12


--------------------
PM MAIL WWW   Вверх
intervisionist
Дата 24.8.2009, 04:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.1.2009

Репутация: нет
Всего: нет



2)deflate- идет без сжимания, специально проверял в HTTPAnalyz

1)Поменял. Результат тот же

Может ответ не приходит за одно сообщение?

Это сообщение отредактировал(а) intervisionist - 24.8.2009, 05:36
PM MAIL   Вверх
intervisionist
Дата 24.8.2009, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.1.2009

Репутация: нет
Всего: нет



Да именно это и нужно было, ответ полностью будет приходить в 2-3 раза.

Это сообщение отредактировал(а) intervisionist - 24.8.2009, 07:02
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0644 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.