2

WIFIカメラを入手しました。このカメラに URL 要求を送信し、iPad で mpeg4 ストリーミングを再生するには、iPad アプリケーションを開発する必要があります。

このカメラは、リクエストを受け取った後、ネットワーク パケットを iPad に送り返します。各パケットの先頭には、ビデオやオーディオなど、このパケットのタイプを示す 8 ビットの unsigned char が含まれています。

NSData は 16 ビット形式であるため、最初の 8 ビットの unsigned char を取得して、このパケットのタイプを認識するにはどうすればよいですか?

私は間違った方向に進んでいると思います。パケット層に焦点を当て、C 言語を使用してネットワーク パケットを処理する方法を見つける必要があります。ただ、今はC言語が苦手です。C を使用してネットワーク パケットを制御する方法を教えてください。

4

1 に答える 1

1

NSData オブジェクトを使用している場合は、bytesメソッドを使用して NSData コンテンツへのポインタを取得できます。

このメソッドはvoidポインタを返します。好きなように割り当てることができます。

例えば:

unsigned char * x = [ myDataObject bytes ];

ポインターを持っているので、NSData の内容を 1 バイト (8 ビット) 単位で読み取ることができcharます。

x[ 0 ]最初のバイト、x[ 1 ]2 番目のバイトなどになります。

別のタイプを使用すると、異なる結果が得られます。例えば:

unsigned short int * x = [ myDataObject bytes ];

an がプラットフォームで 16 ビットであると仮定するとunsigned short int(異なる場合があります)、NSData の内容に 16 ビットでアクセスします。

最後の例でx[ 0 ]は、最初の 16 ビットなどになります...

ポインタ演算も同様です。

于 2011-11-16T01:04:32.023 に答える