Objective-C 网络访问与调试技巧
1. 网络访问
1.1 文件描述符的优势
在网络访问中,使用文件描述符对象有诸多好处。例如,其方法会将另一个文件描述符添加到等待列表中。在 OS X 10.6 中,使用 Grand Central Dispatch 来发布通知,但核心功能保持不变。此外,使用文件描述符对象时,你无需再考虑缓冲区问题。通常从套接字读取数据时,需要分配缓冲区并将指针传递给 read() 或 recv() 系统调用;而使用文件描述符对象,你可以直接读取 NSData 实例。如果你需要处理大量字符串,还可以考虑在 NSFileHandle 上添加一个类别,提供 -writeUTF8String: 和 -readUTF8String 方法,或者根据协议使用的编码提供等效方法,这样就能直接获取和发送字符串。
1.2 连接服务器
Objective-C 提供了类似 Java 的流类用于网络通信,同时也有底层的 UNIX 接口。不过,流类版本存在一些局限性,比如无法方便地添加压缩等过滤器,也难以在连接过程中协商加密,并且不便于支持 SRV 记录。SRV 记录是一种 DNS 记录,用于广告服务到端口的映射以及主机名到 IP 地址的映射,在 DNS - SD 中使用,由于 IP 地址短缺,在公共互联网的分层 DNS 中越来越常见。
若在 OS X 上使用 POSIX 的 getaddrinfo() 函数查找服务器地址,需
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



