![]() |
в MAC OS насколько я понимаю критично sizeof( sockaddr ) != sizeof( sockaddr_in )
> Я пробовал не очищать, оно ругается. ругается? всю жизнь не ругалось) s_a.sin_family = AF_INET; s_a.sin_port = htons( 80 ); s_a.sin_addr.s_addr = inet_addr( ip ); вот и все что нужно, всегда так делал... s_a в стеке, там был мусор. |
Цитата:
и strstr тем же смотри у всего cBuf наличие \r\n\r\n, а не strncmp, так как данные могу поступать как угодно. 2KEZ ну и наверняка без наличия "Host: " будет идти чтение с не зарезервированного участка памяти, что к ошибке рантайм должно привести. |
Цитата:
|
NetMan, у стандартных функций типа strcpy есть безопасные аналоги, которые позволяют ограничивать размер, таже strncpy, другое дело, что ТС не правильно ее использует.
|
Большое спасибо за коментарии, критику учту, хотя во многих постах чуствовалаль почемута некоторая агрессия, это все таки "первый блин". По поводу работоспособности я с ним пару часов серфил на опере, не скажу что было очень стабильно но работало. по поводу /r/n/r/n это в процессе написания была некоторая проблема из- за чего применялась такая конструкция для отладки потом ее исправил но видимо выложил не исправленную версию.
а по поводу замены констант ну это просто облегчает читаемость все равно же в ехе будет число на этом месте. >> if((saddr.sin_addr.s_addr=inet_addr("cHost"))==INA DDR_NONE) >>Ой это вообще без комментариев. Это не работает 100%. Что называется "полный П" причем тут пхп просто кавычки забыл убрать и все >>saddr.sin_addr.s_addr=htonl(INADDR_ANY); да действительно херня получилась... |
если я еще не всех доеп (помоему здесь все какие то вспыльчивые) может кто нибудь посоветовать как проверить состояние сокета потому как если клиент отправил данные но не закрыл сокет ф-я reсvостанавливает выполнение программы. в гет-запросе проблем никаких достаточно найти /r/n/r/n а вот пост-запрос еще шлет длину запроса а вымерять ее как то не хочеться
|
| Время: 09:04 |