Задать вопрос
antonyter
@antonyter

Валится на bind() в native?

Пишу следующий native код:



sock = socket(AF_INET, SOCK_DGRAM, 0);<br>
    if(sock < 0) return false;<br>
    <br>
    addr.sin_family = AF_INET;<br>
    addr.sin_port = htons(UDP_PORT);<br>
    addr.sin_addr.s_addr = htonl(INADDR_ANY);<br>
<br>
    if(bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) return false;<br>
<br>
...//читаем из сокета данные<br>


Валится на bind — 'Permission denied'

Если выставить addr.sin_addr.s_addr заведомо правильный — 'Cannot assign requested adress'
  • Вопрос задан
  • 3232 просмотра
Подписаться 3 Оценить 3 комментария
Решения вопроса 1
memset для addr сделали?
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@RainM
Performance is all you need
Попробуйте поменять addr.sin_addr.s_addr на настоящий IP или хотя бы loopback
На форточках/линуксе работает?
Ответ написан
PVOID
@PVOID
В манифесте

<uses-permission android:name="android.permission.INTERNET" />

не забыли?
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Может быть

sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы