recvfrom
に電話すると、NULL
がsockaddr_in
from
に返されます。この正確なコードはデスクトップ環境で正常に動作しますが、デバイス上では正常に動作しません。Android NDK(ソケット) - recvfrom()はsockaddr *をNULLから設定します。
int MyClass::ReceiveData(char *buffer, int bufferLength)
{
int numBytes = 0;
struct sockaddr_in from;
socklen_t fromLength = sizeof(struct sockaddr_in);
numBytes = recvfrom(mConnectionSocket,
buffer,
bufferLength,
0,
(struct sockaddr *)&from,
&fromLength);
if (numBytes == -1)
perror("recvfrom");
int fromAddress = ntohl(from.sin_addr.s_addr);
return fromAddress;
}
誰もが考えていますか?
soファイルを含めるようにアプリを正しくパッケージしていますか?デスクトップと言うとエミュレータを意味する...? – JPM
いいえ、エミュレータではなく、コンピュータのコマンドラインで実行され、同じ正確なコードを使用するプログラムを作成しました。それは私のコンピュータで 'から'正しいIPアドレスを取得しますが、何らかの理由でそれはAndroidデバイス上にはありません。 他の誰かが同じ問題を抱えていましたが、誰も修正について言及していませんでした。http://groups.google.com/group/android-developers/browse_thread/thread/6c380cadccca079b – Teclys
ヘッダーコードを投稿して* .hアンドロイドNDKのあなたの使用ファイルとメイクファイルは? – JPM