Проблема в следующем. Написал простейший TCP сервер и клиент. Запускаю на Win, соединение устанавливается. Отсылается строка типа char* с клиента и принимается на сервере. Все нормально работает. Переношу сервер на плату. Запускаю, все работает. Но при попытке отослать строку с Win на плату, она не приходит. То есть сервер реагирует, говорит что что-то соединилось, срабатывает функция accept(), но сами данные не приходят. Может быть проблема в типе передаваемых данных... непойму. Сервер висит на 192.168.0.1 Помогите кто может. Спасибо.
server.cpp:
client.cpp:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Ton 10.04.2009 г. в 17:08:50
2sasamy: да наверно дело действительно в размере буфера, что-то я не обратил внимание на него, раз работало под Win... Добавил строку buf=new char [60]; В результате: при компиляции под ARM, ругается на следующее
2repairman: да, наверно вы правы. но все таки я уверен, что в данном случае ip-адрес получается правильный, ведь соединение устанавливается, т.е. проблема думаю не в этом...
Есть много хороших книжек по С - не поленитесь прочитать, или хотя бы как справочник использовать, Керниган&Риччи будет оптимальным вариантом. По вопросу - если буфер небольшой можно и статически память выделить
char buf[60];
если нужно динамически выделять память - используйте аллокаторы типа malloc, например
buf = (char *)malloc(60);
при выходе не забывайте подчищать за собой память
free(buf); // это для случая выделения памяти через malloc
Кстати, примеры TCP и UDP серверов/клиентов там тоже есть....
К примеру:
16.9.6 Byte Stream Socket Example
16.9.7 Byte Stream Connection Server Example
16.10.3 Datagram Socket Example
16.10.4 Example of Reading Datagrams
Стоит наверно добавить что GNU никогда не было и скорей всего не будет стандартом. Зачем такие крайности - черпать информацию нужно с официальных источников. Человек элементарно никогда не слышал о K&R.. Наклепали уже наши университеты "программистов" отождествляющих С++ с MFC и "дельфистов", счас блин другая мода пойдет - gnu... Ничего не имею против gnu - там они вроде оговариваются что есть в стандарте posix а чего нет и является гнутым расширением.