質問: 同じサブネット内のiosからiosデバイスへの接続() 私は1つのiPhone(またはiPod)から別のものに標準的なTCP接続を行う必要のあるIOSアプリケーションを開発します。接続は、シミュレータとデバイス上のアプリケーション間、および2台のシミュレータ間でうまく機能します。 アプリケーションはposix connect()を使用しています。他のモジュールが純粋なCであるため、このメソッドに固執する必要があります。 connect()アプリケーションブロックを呼び出すと、タイムアウトエラーが返されます。 通信はLANの無線LAN経由です 私はトラフィックを盗聴し、シミュレータに接続した後にデバイスがARPを送信し、応答後に標準的なTCPハンドシェイクが行われ、セッションが確立されたことがわかりました。 Same case with iPhone<>iPhone stops after ARP request, because another iPhone doesn't respond to it. Moreover iOS sends only gratuitous ARP (announces it's mac ip pair). My MAC seems like proceeding this request, because its ARP table has iPhone record, it doesn't work for another iPhone. I've tried bonjour service, but it also works only with simulator <> device. My question: Is there any way to allow such communication? Is it possible it is problem with my iPhones only? Is there any explicit way to tell OS to send response for arps, or is it somehow blocked for traffic ios<>ios communication.
回答: これが役立つかどうかはわかりませんが、私はネットワーク上で自分自身を発表するデバイスと同様のことをしているプロジェクトに取り組んでいます。私たちはSSDPを使用して、あるデバイスからアライブ要求を送信し、他のデバイスはマルチキャストアドレスとポートでリッスンしています。各デバイスが生存状態を受信すると、IPアドレスやポートなどの関連情報があればすべてのデバイスに応答を送信します。残念ながら、SSDPはsendとforgetのタイプのプロトコルなので、そこに問題があります。 IPアドレスとポート情報を使用して、各デバイスに直接メッセージを送信します。 繰り返しますが、これがあなたの状況に役立つかどうかはわかりませんが、私はこの作業をこれまでのところよく見てきました。