美文网首页
socket浅析以及socket心跳机制

socket浅析以及socket心跳机制

作者: 令__狐冲 | 来源:发表于2018-04-04 19:00 被阅读49次

    最近在看socket编程的一些内容,想总结下。先从理论知识总结下,不涉及代码。

    1.socket是什么?

    socket(套接字)是应用层和TCP/IP协议族通信的中间软件抽象层,是它的一组接口。包含进行网络通讯必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

    2.socket能干嘛?

    多个TCP连接或者多个应用程序进程可能需要通过同一个TCP协议端口传输数据,为了区分不同的应用程序进程和连接,操作系统为应用程序和TPC/IP协议交互提供了socket。应用层和传输层可以通过socket,区分来自不同应用程序进程或者网络连接的通信,实现数据传输的并发服务(socket并发通信,比如手机直播软件中的聊天,全局跑道等等)。

    3.如何建立socket连接

    建立socket连接至少需要一对套接字,分别运行于服务端和客户端,clientSocket serverSocket。建立连接需要三个步骤:服务器监听,客户端请求,连接确认。

    socket可以支持不同的传输层协议(tcp或者udp),当使用tcp协议进行连接时,该socket连接就是一个tcp连接。udp同理

    20180328161441148.png

    4.socket心跳机制

    因为防火墙会关闭长时间处于非活跃状态的连接而导致socket连接中断,通过心跳机制可以保持长连接。原理如下:

    客户端每隔一段时间向服务器端发送一个心跳包,同时开启定时器。服务器返回一个相同的心跳包给客户端。如果客户端能收到心跳包,说明连接正常,删除定时器。如果超时未收到心跳包,则认为连接断开,这个时候可以进行重连设置。至于如何设置重连,可以参考:https://blog.csdn.net/u013282507/article/details/52622264

    参考:http://www.cocoachina.com/ios/20160602/16572.html
    https://blog.csdn.net/u013282507/article/details/52622264

    相关文章

      网友评论

          本文标题:socket浅析以及socket心跳机制

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