美文网首页
ios开发socket通讯数据包、读取数据、心跳包

ios开发socket通讯数据包、读取数据、心跳包

作者: Alvin_d372 | 来源:发表于2018-09-26 15:04 被阅读0次

socket通讯目前用得比较多的有AsyncSocket与GCDAsyncSocket两个类包。gcd可以将socket与队列绑定,很多方法都已经被作者封装到协议里面了。

1、关于socket对象建议做成全局的对象,因为每个进程都是连接一个socket,所以至于是单例还是全局变量看自己定义。

2、对于经常说的心跳连接:如果不发数据的话,你不知道另一头是不是断了,这样就可能会出现占用好多资源的情况,所以实践里对keepalive的连接,是要隔一段时间就发一下数据看看另一头有没有反应的,所以使用心跳包来判断服务端是否还与自己保持连接。所以在做一些需要长时间连接的操作的时候最好定时给服务端发送一些数据,这样能准确的判断是否断线

3、[self.socket readDataWithTimeout:30 tag:0];每次收到数据之后都要循环读取数据,防止数据丢失。关于tag还有一个好处就是可以根据业务逻辑进行定义比如:tag:0=心跳包,tag:1=控制命令,tag:2=图片,tag:3=视频。。。

代码就不贴了,有不懂的可以给我留言,其实资料很多,仔细看就能发现。socket通讯很容易入门,但是需要注意的细节还是很多。

相关文章

  • ios开发socket通讯数据包、读取数据、心跳包

    socket通讯目前用得比较多的有AsyncSocket与GCDAsyncSocket两个类包。gcd可以将soc...

  • netty的编解码

    什么是拆包/粘包 TCP 粘包/拆包 半包:读取的数据不是一个数据包粘包:读取的数据超过一个数据包 粘包问题的解决...

  • 即时通讯

    iOS即时通讯,从入门到“放弃”?socket的半包,粘包与分包的问题iOS 处理socket粘包问题iOS___...

  • TCP、UDP、Unix Domain Socket

    TCP 面向字节流 UDP 面向数据包 Unix Domain Socket 面向连接

  • TensorFlow(4)MNIST数据集

    加载数据包 解压、读取数据包 观察数据集 训练集数据元素的直观展示 获得一批数据并观察数据类型和形状

  • LWIP UDP偶发丢包问题

    RTTHREAD LWIP实现UDP通讯,使用得socket通讯偶发UDP丢包,用Wireshark监控通讯数据,...

  • 网络模型

    socket网络编程 socket分为tcp协议和udp协议: udp: 1.面向无连接,将数据源封装在数据包中,...

  • IOS开发_Socket通讯

    1、socket简介; 2、IOS中socket的实现; 1、socket简介; 1.1 概念:套接字(s...

  • 网络协议分层

    1- 通过wireshark 分析网络数据包 1.1 以太网数据包 1.2 IP 数据包 1.3 TCP 数据包 ...

  • iOS 数据包

    //联系人:石虎QQ:1224614774昵称:嗡嘛呢叭咪哄 一、概念 1.数据包含义: 宽泛意义的数据包:每一个...

网友评论

      本文标题:ios开发socket通讯数据包、读取数据、心跳包

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