DNS_SDパッケージの一部としてDNSServiceRegister(...)関数を使用しようとしていますが、「ホスト」の場合、文字列としてホスト名が必要です。ただし、IPアドレスでホストを登録することは可能ですが、IPアドレスはバイナリ表現でフォーマットする必要があります(192.168.1.23ではなく0x1701a8c0になります)。
値1701a8c0を直接渡すことで関数をだますことができると思いますが、試したことは何も機能していないようです。strncpyは期待値を返しません。貼り付けるだけでは機能せず、NSDataを作成すると、NSStringは機能しません。一度にchar配列1エントリを作成するループを作成できますが、別の方法が必要ですか?
struct sockaddr_in sa;
...
ipBinary=[[NSData alloc] initWithBytes:&(sa.sin_addr.s_addr) length:8];
ipBinStr=[[NSString alloc] initWithData:ipBinary encoding:NSUTF8StringEncoding];
私はこれのバリエーションを機能させることができませんでした:
strncpy(str,(char *)&(sa.sin_addr.s_addr),8);