Note: POSIX networking does not activate the cellular radio on iOS.
For this reason,the POSIX networking API is generally discouraged in
iOS.
同样在“Networking Overview Guide”的“Networking Tips and Pitfalls”一章中,Apple说:
In iOS,using sockets directly using POSIX functions or CFSocket does
not automatically activate the device’s cellular modem or on-demand
VPN.
好的,所以在iOS上,既不应该使用POSIX套接字也不应该使用CFSocket,这只是一个围绕POSIX套接字的薄包装,它支持通过RunLoops进行异步网络连接.没问题.但是,如果需要UDP套接字,您应该使用什么API?
Apple在“Networking Overview Guide”的章节“Networking Tips and Pitfalls”中进一步说:
Avoid Resolving DNS Names Before Connecting to a Host
因此,理想情况下应该有一个用于管理UDP套接字的API,而不是POSIX API和CFSocket,它接受DNS名称而不是目标地址的IP地址.
也许我是盲人但我找不到任何这样的API.有任何想法吗?
使用任何第三方API(不是Apple)都不是很有趣,因为这样的API必须基于Apple API,在这种情况下我可以直接使用这个Apple API.在POSIX套接字周围编写我自己的包装器API是小菜一碟,我之前写过很多套接字包装器,我已经知道了所有令人讨厌的陷阱.但我不会使用POSIX API,这是最初的问题.