2012-01-03 8 views
0

私は、iosでBanjourベースのアプリケーションを実装しようとしています。私は成功を完全に実装して、1つのiPhoneに別のiPhoneにデータを送受信しています。 サービス内の他のすべてのデバイスを参照した後。テーブルに表示されます。Bonjourベースのiosアプリケーションで複数のアドレスを解決するにはどうすればよいですか?

enter image description here

今、私は、各デバイスに一つだけのソケットを作成したテーブルビューに、いくつかのデバイスを選択すると、選択したデバイスにそのために

enter image description here

のデータを送信します。

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つの以上の問題になっ

ことだから、私の疑問は、次のとおりです。

  1. 選択したデバイスが復元されるのはなぜですか?
  2. Now IC TCPベースのソケットをreate、どのようにデータを送信する宛先アドレスを追加するには?
  3. シングルソケットから複数の宛先にデータを送信することはできますか?

答えて

0

Appleの定義によれば、CFSocketはBSDソケットで実装された通信チャネルです。

デバイス間のソケット接続を確立しました。しかし、データの送受信には、NSStreamを使用する必要があります。マニュアルは見つかりませんでしたhere

私は参照としてAppleのサンプルコードWitapを使用しています。

データの送受信には、NSStreamDelegateも使用してください。

0

1デバイスあたり1つのデバイスを解決して送信するのはどうですか?簡単に聞こえる:D

はところで、私はプロジェクトのために使用され、本当に素敵なソケットライブラリがあります:

https://github.com/robbiehanson/CocoaAsyncSocket

関連する問題