iOS官方文档翻译iOS文档翻译

使用Socket和Socket流 <- 网络概述

2017-07-05  本文已影响81人  raingu24

本章描述了建立socket连接的方式,这种连接完全由你的程序控制。大多数程序通过高级API就可以得到很好的实现,例如在前面章节介绍的NSURLConnection。只有你需要支持的协议不是Cocoa或者Core Foundation内置功能支持的协议时候,这些API才可以被使用。

选择socket API

在几乎所有级别的网络中,软件可以被分成两个类别:客户端(连接到其他应用的程序)和服务器端(其他应用连接到的程序)。在高级别上,这些划分是很清晰的。使用高级API写的程序都是纯客户端。但是在低级别上,划分往往是模糊的。

Socket和流编程通常属于下面几个大类之一:

选择基于socket连接的API,取决于你是连接到一台主机,还是从另一台主机接收连接。它还取决于你是使用TCP还是其他协议。这里有几个因素需要考虑:

注意:如果你使用POSIX网络代码,你应该意识到POSIX网络API不是协议无关的(protocol-agnostic)(你必须自己处理IPv4和IPv6之间的差别)。它是一个通过IP连接的API,而不是一个名字连接的API,这意味着,如果你想实现和高级API那样的功能,你需要做很多额外的工作。在你决定重用现有的POSIX网络代码之前,务必阅读Avoiding Common Networking Mistakes中的 Avoid Resolving DNS Names Before Connecting to a Host。

上一篇下一篇

猜你喜欢

热点阅读