http запрос на с, korn, 15-Июл-04, 21:45 [смотреть все]Есть прога ,которая посылает 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 и это у меня отображается на зкране!!!! |
- http запрос на с, klalafuda, 22:02 , 15-Июл-04 (1)
>Есть прога ,которая посылает 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
- http запрос на с, korn, 22:54 , 15-Июл-04 (2)
>>Есть прога ,которая посылает 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) неуместно?Я спросил насчет этого у других людей,мне сказали что нормально это....
- http запрос на с, jd, 03:42 , 16-Июл-04 (3)
>>>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 кривота...
- http запрос на с, jd, 14:13 , 16-Июл-04 (4)
гоню, так всё-равно неправильно будет (sizeof даст длину вместе с нулём в конце, то есть на 1 больше) так что используйте strlen
|