The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"http запрос на с"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"http запрос на с"
Сообщение от korn Искать по авторуВ закладки on 15-Июл-04, 21:45  (MSK)
Есть прога ,которая посылает http запрос серваку и должна получить index.html.
у меня получается послать запрос,сервак его обрабатывает но мне не удается принять файл!!!
вот кусок кода:
char *buf="GET /index.html HTTP/1.0";
..
connect(sock,(struct sockaddr*)&cli,sizeof(cli));
..
int k=send(sock,buf,sizeof(buf),0);

printf("%d bytes send\n",k);

recv(sock,recved,sizeof(recved),0);
printf("%s",recved);
close(sock);
Ну вот после этого прога не может файл получить и виснет.
А если я намеренно посылаю неправильный запрос то сервак мне посылает 400 Bad request и это у меня отображается на зкране!!!!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "http запрос на с"
Сообщение от klalafuda emailИскать по авторуВ закладки on 15-Июл-04, 22:02  (MSK)
>Есть прога ,которая посылает http запрос серваку и должна получить index.html.
>у меня получается послать запрос,сервак его обрабатывает но мне не удается принять
>файл!!!
>вот кусок кода:
>char *buf="GET /index.html HTTP/1.0";
>..
>connect(sock,(struct sockaddr*)&cli,sizeof(cli));
>..
>int k=send(sock,buf,sizeof(buf),0);

читайте книги по C для начинающих
hint: sizeof(buf) в вашем случае совершенно неуместен и программа уже некорректно работает. дальше уже дело случая.

>printf("%d bytes send\n",k);
>
>recv(sock,recved,sizeof(recved),0);
>printf("%s",recved);
>close(sock);

что из себя представляет recved ? хотя я могу догадаться.. char *, да ?

// wbr

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "http запрос на с"
Сообщение от korn Искать по авторуВ закладки on 15-Июл-04, 22:54  (MSK)
>>Есть прога ,которая посылает http запрос серваку и должна получить index.html.
>>у меня получается послать запрос,сервак его обрабатывает но мне не удается принять
>>файл!!!
>>вот кусок кода:
>>char *buf="GET /index.html HTTP/1.0";
>>..
>>connect(sock,(struct sockaddr*)&cli,sizeof(cli));
>>..
>>int k=send(sock,buf,sizeof(buf),0);
>
>читайте книги по C для начинающих
>hint: sizeof(buf) в вашем случае совершенно неуместен и программа уже некорректно работает.
>дальше уже дело случая.
>
>>printf("%d bytes send\n",k);
>>
>>recv(sock,recved,sizeof(recved),0);
>>printf("%s",recved);
>>close(sock);
>
>что из себя представляет recved ? хотя я могу догадаться.. char *,
>да ?
>
>// wbr

Нет recved - это char[64]
Скажите а почему sizeof(buf) неуместно?Я спросил насчет этого у других людей,мне сказали что нормально это....

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "http запрос на с"
Сообщение от jd Искать по авторуВ закладки on 16-Июл-04, 03:42  (MSK)
>>>char *buf="GET /index.html HTTP/1.0";

>Скажите а почему sizeof(buf) неуместно?Я спросил насчет этого у других людей,мне сказали
>что нормально это....

Потому, что в данном случае sizeof(buf)=размеру указателя, например на 32-х битной платформе (с которой вы вероятно имеете дело) это будет 4. Можно воспользоваться вызовом strlen(3) или если уж так нравится sizeof, то писать нужно что-то вроде

#define CMD "GET /index.html HTTP/1.0"
...
send(sock,CMD,sizeof(CMD),0);

Но это уже IMHO кривота...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "http запрос на с"
Сообщение от jd Искать по авторуВ закладки on 16-Июл-04, 14:13  (MSK)
гоню, так всё-равно неправильно будет (sizeof даст длину вместе с нулём в конце, то есть на 1 больше)
так что используйте strlen
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру