iOS网络编程socket

作者: 测试账号 | 来源:发表于2021-07-13 22:46 被阅读0次

 最近看到很多招聘都需要有这个技能,精通socket网络编程,而我接触的好像都是直接用的第三方,融云IM或者七牛啥的。好奇心让我去大概了解了下,以下为个人了解思路。

一、基础层

1.通信离不开协议,即TCP/UDP协议,socket即时通讯也是在此基础上面进行了封装。先来看这俩协议区别:

TCP协议:传输需要建立安全连接,即三次握手连接,四次挥手断开连接。传输过程安全可靠,确定就是慢,毕竟每次连接都需要建立安全连接。

UDP协议:无需建立安全连接,可以直接进行数据传输,UDP数据段进行传输,网上写的每段最大不超过64k。传输过程快,但是容易丢包,毕竟没建立安全传输通道,直接传输的。

2.上层协议封装,供http协议使用。主要用于客户端主动发起通信,收到响应请求结束,在请求结束后,会主动释放连接。一次一连接,也叫短链接,无状态协议。

3.上层协议封装,作为socket通信基础,服务端和客户端建立长连接。服务端可主动将消息推送给客户端。

然后再回到iOS的socket网络编程

二、iOS层

1.BSDSocket

iOS基于C语言的开发,最底层作为socket的是BSDSocket,这个库,封装了socket的一些基本操作,包括建立连接,数据的读写。

服务端:1>.监听连接请求   2>接收连接请求   3>数据传输    4>关闭连接   

客户端 :2>建立连接       2>数据传输     3>关闭连接

2.CFSocket

iOS在BSDSocket基础上,又加入了自己的RunLoop规则,即"接受消息->等待->处理" 的循环中“

基本功能一致,并且包含了少数开销。

服务端:1>创建socket  2> 绑定本地IP和端口到Socket   3>获取当前线程的runloop并把服务端Socket加入到RunLoop中,启动RunLoop  4>创建对应客户端socket的输入输出流

客户端:1>直接创建对应服务端的IP和端口的Socket  2>并创建对应的输入输出流  3>创建对应客户端socket的输入输出流

ok!👌!戛然而止!

相关文章

  • iOS网络操作

    iOS提供的API socket 方式 IOS 提供的socket 方式的网络编程接口为CFSocket。CFSo...

  • socket

    iOS 使用 socket 即时通信(非第三方库)简单理解Socket iOS socket网络编程(一) soc...

  • Socket

    Socket iOS网络编程层次结构 iOS网络编程层次结构分为三层,从上往下依次为: Cocoa层:NSURL,...

  • iOS Socket编程(二)TCP三次握手,四次挥手

    iOS Socket编程(一)基本概念iOS Socket编程(二)TCP三次握手,四次挥手iOS Socket编...

  • iOS Socket编程(三)Socket与HTTP的区别

    iOS Socket编程(一)基本概念iOS Socket编程(二)TCP三次握手,四次挥手iOS Socket编...

  • iOS Socket编程(四) Socket具体使用

    iOS Socket编程(一)基本概念iOS Socket编程(二)TCP三次握手,四次挥手iOS Socket编...

  • iOS Socket编程(一)基本概念

    iOS Socket编程(一)基本概念iOS Socket编程(二)TCP三次握手,四次挥手iOS Socket编...

  • 许世伟的Go语言基础 第五章总结

    第5章 网络编程 5.1 socket编程 以往socket编程: 建立socket:使用socket()函数。 ...

  • 网络编程

    python学习笔记-网络编程 socket编程: socket()函数:socket.socket([famil...

  • 2018-03-12

    ios开发Socket简单使用 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(AP...

网友评论

    本文标题:iOS网络编程socket

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