antonyter
@antonyter

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

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

sock = socket(AF_INET, SOCK_DGRAM, 0);
    if(sock < 0) return false;
    
    addr.sin_family = AF_INET;
    addr.sin_port = htons(UDP_PORT);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);

    if(bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) return false;

...//читаем из сокета данные


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

Если выставить addr.sin_addr.s_addr заведомо правильный — 'Cannot assign requested adress'
  • Вопрос задан
  • 3223 просмотра
Решения вопроса 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
http://dilbert.com/strip/1998-08-24
Может быть

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

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

Войти через центр авторизации
Похожие вопросы