美文网首页
8.1 BSD Socket

8.1 BSD Socket

作者: spbreak | 来源:发表于2016-03-08 19:26 被阅读90次

Socket : 两个端点之间的单向连接, 因此它们通常情况下都是成对出现的: 一个用于读, 一个用于写. 类似于 UNIX 系统上的几乎所有其他资源, Socket 也表示为文件, 并且在创建时会被分配文件描述符

9个最常见的 Socket API 调用

BSD Socket 完全使用 C 语言实现, 并且可以在 Objective-C 代码中使用. 原始的 Socket 无法访问操作系统内建的网络特性(比如系统范围的 VPN). CFNetwork 对 BSD Socket 的封装可以激活设备的无线电, 因此在几乎所有场景中, 我们建议使用 CFNetwork 而非 BSD Socket

要想创建 Socket, 请调用 socket(int addressFamily, int type, int protocol)并提供 socket.h 中定义的网络域、Socket 类型与协议枚举值. 通常情况下, 对于 iOS 应用发出的流量, addressFamily 值为 IPv4(AF_INET) 或 IPv6(AF_INET6); 不过, 也可以打开到本地文件的 Socket. Socket 类型通常会被设定为流(SOCK_STREAM)或数据包(SOCK_DGRAM). 这两个值非常重要, 因为调用 socket() 时常常会提供值为 0 的协议, 这表示系统可以通过域和类型值自动选择恰当的协议. 对于流式 Socket 来说, 自动选择的值为传输控制协议(IPPROTO_TCP); 对于数据包 Socket 来说, 自动选择的值为用户数据报协议(IPPROTO_UDP)

相关文章

网友评论

      本文标题:8.1 BSD Socket

      本文链接:https://www.haomeiwen.com/subject/ikuzkttx.html