UDP パケットを送信するアプリケーションがあります。ソケットは正しく作成されていますが、パケットの送信中にエラーが発生します。アプリケーションは、Android N を除くすべてのバージョンの Android で正常に動作します。
次のエラーが表示されます SendTo() error: 13
。コードの一部を次に示します。
bool Bind(const SocketAddress& name)
{
int size = sizeof(sockaddr);
std::cout << "Socket Reuse SET" << std::endl;
int yes = 1;
if( 0 == setsockopt(_socket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)))
{
std::cout << "Socket set" << std::endl;
}
if (0 == bind(_socket, reinterpret_cast<const sockaddr*>(&name),size))
{
return true;
}
_error = errno;
return false;
}
int32_t SendTo(const int8_t* buf, size_t len,
const SocketAddress& to)
{
int size = sizeof(sockaddr);
//std::cout << "Send TO [" << buf << "]" << std::endl;
int retVal = sendto(_socket,buf, len, 0,
reinterpret_cast<const sockaddr*>(&to), size);
if(retVal == SOCKET_ERROR)
{
_error = errno;
}
return retVal;
}
誰でも問題を解決できますか。前もって感謝します。