美文网首页iosiOS进阶不易的地方即时通信
iOS即时通讯(一)- Socket( 插座)

iOS即时通讯(一)- Socket( 插座)

作者: PlusNie | 来源:发表于2016-07-26 11:04 被阅读539次

Socket

  • Socket又称“套接字”
  • 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为socket
  • 应用程序通常通过“套接字”向网络发出请求或者应答网络请求
Socket.png

网络通信的要素

  • 网络上的请求就是通过Socket来建立连接然后互相通信
  • IP地址(网络上主机设备的唯一标识)
  • 端口号(定位程序)
  • 用于标示进程的逻辑地址,不通进程的标示
  • 有效端口:065535,其中01024是由系统使用或者保留端口,开发中建议使用1024以上的端口
  • 传输协议(用什么样的方式进行交互)
  • 通讯的规则
  • 常见协议:TCP、UDP

TCP&UDP

TCP(Transmission Control Protocol,传输控制协议)

  • 建立连接,形成传输数据的通道
  • 在连接中进行大数据传输(数据大小不做限制)
  • 通过三次握手完成连接,是可靠协议,安全送达
  • 必须建立连接,效率会稍低

对于TCP三次握手可以理解为打电话,拨电话(第一次握手),对方接电话(挂断导致第二次握手失败),互相问候(如果单方面,认为第三次握手失败)。

UDP (User Data Protocol,用户数据报协议)

  • 将数据及源和目的的封装成数据包中,不需要建立连接
  • 每个数据报的大小限制在64k之内
  • 因为无需连接,因此是不可靠协议
  • 不需要建立连接,速度快

对于UDP可以理解为发短信,不需要知道对方开机、还是关机、还是停机;如果短信次数超过70条直接挂机,无法知道短信什么时候到达。

Socket通信流程

Socket通信流程图.png

实现Socket服务端接听

实现socket的监听方法

  • 使用C语言实现
  • 使用CocoaAsyncSocket第三方框架,内部是对C的封装

Telnet命令telnet host port/telnet 192.168.10.10 5288

  • telnel命令是监听服务器上否个端口对应的服务有没有开启

Socket 层上的协议

  • Socket层上的协议指的数据传输的格式
  • HTTP协议(HyperText Transfer Protocol),超文本传输协议)
    传输格式,假设:这是建设,实际http的格式不是这样的。http1.1,content-type:multipart/form-data,content-lenth:188,body:username=zhangsan&password=123456
  • XMPP协议,是一款即时通讯协议(Extensible Messaging and Presence Protocol,可扩展消息处理现场协议)
    是基于XML(Extensible Markup Language,可扩展标示语言)的协议,它用于IM(Instant Messaging,即时通讯)以及在线现场探测。这个洗衣可能最终允许因特网用户向因特网上的其他任何人发送即时消息
传输格式.png

相关文章

  • iOS即时通讯(一)- Socket( 插座)

    Socket Socket又称“套接字” 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为...

  • iOS基于Socket.io即时通讯IM实现,WebRTC实现视

    Socket.io-FLSocketIM-iOS 基于Socket.io iOS即时通讯客户端 iOS IM C...

  • Socket初探

    Socket 套接字层 插座 socket能够主动发送请求 会有速度 带宽 及时性的优点 造就即时通讯 htons...

  • 即时通讯

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

  • 第三方聊天方案选择

    2018.4.21 现在市面上有多少方案可以选择? 方案一:socket通信 iOS开发之即时通讯之Socket(...

  • Socket搭建即时通讯服务器

    即时通讯 相关代码Demo地址, 内附服务端代码和iOS端聊天室测试Demo 原文地址: Socket搭建即时通讯...

  • AsyncSocket

    1、AsyncSocket介绍 如果需要在项目中像QQ微信一样做到即时通讯,必须使用socket通讯。 iOS中S...

  • iOS_Socket_使用

    1、AsyncSocket介绍 如果需要在项目中像QQ微信一样做到即时通讯,必须使用socket通讯。 iOS中S...

  • (四)即时通讯系列之XMPP简介

    前面关于即时通讯基础Socket,大家学习使用XMPP之前可以先看看即时通讯系列之Socket简介 前言 前段时间...

  • Socket开发实战

    Socket实际开发中的应用 Socke的概念: socket 的原意是“插座”,在计算机通信领域,socket ...

网友评论

    本文标题:iOS即时通讯(一)- Socket( 插座)

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