「Network Programming Topics Conceptual Guide 」の「 Using Sockets and Streams 」の章で、Apple は次のように述べています。
注: POSIX ネットワークは、iOS のセルラー無線をアクティブにしません。このため、POSIX ネットワーク API は一般的に iOS では推奨されません。
また、「Networking Overview Guide 」の「 Networking Tips and Pitfalls 」の章で、Apple は次のように述べています。
iOS では、POSIX 関数または CFSocket を使用してソケットを直接使用しても、デバイスのセルラー モデムまたはオンデマンド VPN が自動的に有効になりません。
さて、iOS では POSIX ソケットも CFSocket も使用しないでください。CFSocket は、RunLoops を介した非同期ネットワークをサポートする POSIX ソケットの薄いラッパーです。問題ない。しかし、 UDP Socketが必要な場合、どの API を使用すればよいでしょうか?
さらに Apple は、「Networking Overview Guide」の「 Networking Tips and Pitfalls 」の章で次のように述べています。
ホストに接続する前に DNS 名を解決しない
したがって、理想的には、宛先アドレスの IP アドレスの代わりに DNS 名を受け入れる、POSIX API および CFSocket 以外の UDP ソケットを管理するための API が必要です。
私は目が見えないかもしれませんが、そのような API を見つけることができません。何か案は?
(Apple 以外の) サードパーティ API を使用することは興味深いことではありません。そのような API はいずれかの Apple API に基づいている必要があり、その場合、この Apple API を直接使用できるからです。POSIX ソケット用に独自のラッパー API を作成するのは簡単なことです。これまでに非常に多くのソケット ラッパーを作成してきたので、厄介な落とし穴はすべて知っています。ただし、最初の問題である POSIX API は使用しません。