私は、iosでBanjourベースのアプリケーションを実装しようとしています。私は成功を完全に実装して、1つのiPhoneに別のiPhoneにデータを送受信しています。 サービス内の他のすべてのデバイスを参照した後。テーブルに表示されます。Bonjourベースのiosアプリケーションで複数のアドレスを解決するにはどうすればよいですか?
今、私は、各デバイスに一つだけのソケットを作成したテーブルビューに、いくつかのデバイスを選択すると、選択したデバイスにそのために
のデータを送信します。
CFSocketContext socketCtxt = {0, self, NULL, NULL, NULL};
witap_socket = CFSocketCreate(kCFAllocatorDefault, PF_INET6, SOCK_STREAM, IPPROTO_TCP, kCFSocketAcceptCallBack, (CFSocketCallBack)&TCPServerAcceptCallBack, &socketCtxt);
if (witap_socket != NULL)
{
protocolFamily = PF_INET6;
}
else
{
witap_socket = CFSocketCreate(kCFAllocatorDefault, PF_INET, SOCK_STREAM, IPPROTO_TCP, kCFSocketAcceptCallBack, (CFSocketCallBack)&TCPServerAcceptCallBack, &socketCtxt);
if (witap_socket != NULL)
{
protocolFamily = PF_INET;
}
}
これで、選択したデバイスにデータを送信します。そのために、選択したNSNetService(つまりデバイス)を別のNSMutableArrayに保存しました。使用すると、特定のアクションが呼び出される送信ボタンをクリックします。
-(void)SendActionFunction
{
for(int idx=0;idx<[selectedSer count];idx++)
{
NSNetService *service = [self.selectedSer objectAtIndex:idx];
NSLog(@"service......%@",[service name]);
self.currentResolve = [self.selectedSer objectAtIndex:idx];
[self.currentResolve setDelegate:self];
[self.currentResolve resolveWithTimeout:0.0];
}
}
各デバイス(上記のコード)のアドレスを解決しようとしている場合。最初のデバイスでのみ解決されます。 。そして私はそれが自動的にテーブルビューから削除し、デバイスのアドレスを解決した場合、エラー
- (エラーコード= -72003]
1つの以上の問題になっ
ことだから、私の疑問は、次のとおりです。
- 選択したデバイスが復元されるのはなぜですか?
- Now IC TCPベースのソケットをreate、どのようにデータを送信する宛先アドレスを追加するには?
- シングルソケットから複数の宛先にデータを送信することはできますか?