Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 29.09.2013
Сообщений: 15
1

Различие recvfrom между x86 и ARM

10.08.2016, 12:52. Показов 851. Ответов 2

Добрый день, столкнулся с такой проблемой. Кусок по приему UDP сообщений на X86 отрабатывает корректно, а тот же код, скомпилированный под ARM не работает (recvfrom всегда возвращает -1). Может кто сталкивался?

Bind:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
struct sockaddr_in m_localAddr;
 
memset((char *) &m_localAddr, 0, sizeof(m_localAddr));
 
m_localAddr.sin_family = AF_INET; 
m_localAddr.sin_port = htons(6543); 
m_localAddr.sin_addr.s_addr = INADDR_ANY; 
bzero(&(m_localAddr.sin_zero), 8);
 
bind(m_udpSocket, (struct sockaddr *)&m_localAddr, sizeof(struct sockaddr);
Чтение:
C++ (Qt)
1
2
3
4
5
6
7
8
9
    int rcvLenght;
    char buf[MAX_BUF_LENGHT];
    socklen_t sLenght;
    struct sockaddr_in remoteAddr;
 
    while(1)
        {
            rcvLenght = recvfrom(udpSocket, buf, MAX_BUF_LENGHT, 0, (struct sockaddr *)&remoteAddr, (socklen_t*)&sLenght);
        }
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2016, 12:52
Ответы с готовыми решениями:

Различия по весу между Windows 7 Ultimate (x86) и Windows 7 Professional (x86)
Здравствуйте, Скажите есть различия по весу между установленными Windows 7 Ultimate (x86) и Windows...

Различие между метасимволами ^ и \A
Доброго времени суток. Объясните пожалуйста, чем отличаются метасимволы ^ и \A. Насколько я...

Различие между доменами
Всем привет! Интересует такой вопрос, это разные домены или считаются как один?...

Различие между адресами
Какое главное различие между адресом сети и широковещательным адресом? По идеи, они посылают пакеты...

2
Эксперт С++
3058 / 1400 / 421
Регистрация: 19.01.2009
Сообщений: 3,769
10.08.2016, 12:55 2
eg015t, под *nix? Какое значение в errno после вызова bind? Почему не проверяете ошибки?
0
2 / 2 / 0
Регистрация: 29.09.2013
Сообщений: 15
10.08.2016, 13:30  [ТС] 3
Ошибки проверяю, просто сократил приведенный код. Errno = 0 после bind. Собираю под Debian под обе платформы.

А errno после recvfrom 22...

Добавлено через 27 минут
Проблема решена, может кому пригодится. Короче, нужно быть внимательнее. Из статьи:
Заметим, что перед вызовом этот параметр должен указывать на переменную, содержащую максимально допустимое значение такой длины.
В моем случае это делается так:
C++ (Qt)
1
sLenght = sizeof(remoteAddr);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2016, 13:30

Различие между агрегацией и композицией
В чем различие между агрегацией и композицией, в б.д? Про части и целые, знаю; обозначение( само...

Различие между mysql_real_escape_string и mysql_escape_string
Добрый день всем. Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.5.9 Решил скачать...

Различие между ADOTable и DBGrid
Ребят в чем разница между ADOTable и DBGrid? какие плюсы минусы коротко?

В чем различие между дельта
в чем различие между \delta r и dr ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.