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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2011, 19:05   #1
cppn00b
 
Регистрация: 24.03.2011
Сообщений: 6
По умолчанию recv socket

Есть ответ от сервера который приходит в виде:
http://img850.imageshack.us/f/recv.png/
а с помощью функции recv я получаю только заголовок HTTP

Цитата:
HTTP/1.1 200 OK
Server: nginx/0.7.59
Date: Mon, 28 Mar 2011 14:52:53 GMT
Content-Type: text/html; charset=windows-1251
Connection: keep-alive
X-Powered-By: PHP/5.2.6-1+lenny8
Pragma: no-cache
Cache-control: no-store
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie: remixsid=e3dc1f26f78985bb463bc083c1 9c0f59baed365c5152d79c72cbda2441d6; expires=Tue, 27-Mar-2012 14:52:53 GMT; path=/; domain=.vkontakte.ru

Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 374
‹

Line-based text data: text/html отсутствует, чем можно тянуть его?
cppn00b вне форума Ответить с цитированием
Старый 28.03.2011, 23:09   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

А строчка

Цитата:
Content-encoded entity body (gzip): 374 -> 559 bytes
вам ни о чем не говорит? Сервер вернул данные, зажатые gzip. У вас есть 2 варианта:
1) расжать эти данные, как это сделал вайршарк
2) попросить сервер не жать данные.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 28.03.2011, 23:36   #3
cppn00b
 
Регистрация: 24.03.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
А строчка



вам ни о чем не говорит? Сервер вернул данные, зажатые gzip. У вас есть 2 варианта:
1) расжать эти данные, как это сделал вайршарк
2) попросить сервер не жать данные.
Спасибо большое за ответ
Ну 2ой вариант точно пролетает, а вот с 1ым несколько вопросов.
1. Почему даже сжатые данные не отобраюатся?
2. И самый вазжый: как разжать то ?
cppn00b вне форума Ответить с цитированием
Старый 29.03.2011, 00:29   #4
cppn00b
 
Регистрация: 24.03.2011
Сообщений: 6
По умолчанию

Вообщем решил так - убрал Accept-Encoding: deflate, gzip в запросе POST & GET, получил данные в открытом виде.
Но всё таки интересует как можно разжать именно ту часть которую сервер присылает сжатой?
cppn00b вне форума Ответить с цитированием
Старый 29.03.2011, 04:58   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)отбрасывает потому что вы выводите как текст, а сжатые данные текстом более не являються(встретился 0, вот и конец выводу)
2)берем gzip и расжимаем используя функции.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.04.2011, 15:19   #6
cppn00b
 
Регистрация: 24.03.2011
Сообщений: 6
По умолчанию

Подскажите ещё такую вещь
Имеем:
Цитата:
do {
char recvbuff[128] = "";
recvlen = recv(sock, recvbuff, sizeof(recvbuff), 0);
fputs(recvbuff, file);
}while( recvlen > 0);
Получаем:
HTTP/1.1 302 Found
Server: nginx/0.7.59
Date: Sun, 03 Apr 2011 11:15:48 GMT
Content-Type: text/html; charset=windows-1251
Coдg‹o$пnnection: close
X-Powered-By: PHP/5.2.6-1+lenny9
Pragma: no-cache
Cache-control: no-store
Set-Cookie: remixchk=5; expires=Thдg‹o$пu, 12-Apr-2012 00:33:35 GMT; path=/; domain=.vkontakte.ru
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR INDдg‹o$п CNT"
Set-Cookie: s=1; expires=Tue, 27-Mar-2012 12:57:04 GMT; path=/; domain=login.vk.com
Set-Cookie: l=10829457; expires=Wed,дg‹o$п 28-Mar-2012 08:27:56 GMT; path=/; domain=login.vk.com
Set-Cookie: p=61d86fc8e2cf2315f025fdac8eaca1435 287; expires=Tue, 10-Apr-дg‹o$п2012 12:12:16 GMT; path=/; domain=login.vk.com
Location: http://vkontakte.ru/login.php?act=sl...=38084e8b96274дg‹o$пa4104bc0aea85f4cd41&s=1
Vary: Accept-Encoding
Content-Length: 0

Как избавится от этих символов?
cppn00b вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Recv и динамический массив pesi Работа с сетью в Delphi 10 19.09.2010 17:57
recv Function Dimarik Win Api 2 04.04.2010 11:53
Зацикливается recv. asdo Общие вопросы C/C++ 4 23.01.2010 23:38
recv() Артэс C/C++ Сетевое программирование 7 15.01.2010 14:51
WinSock (send, recv) AidarBik Работа с сетью в Delphi 1 27.07.2008 15:22