Socket
- Socket又称"套接字"
- 网络上两个程序通过一个"双向的通信连接实现数据交换"连接的一端称为socket。
-
应用程序通常通过"套接字"向网络发出请求或者应答网络请求【其他公司的服务器】
网络通信的要素
- 网络上的请求就是通过Socket来建立连接后互相通信
- IP地址(网络上主机设备的唯一标识)
- 端口号(定位程序)
- 用于标示进程的逻辑地址,不同进程的标识
- 有效端口:065535,其中01024由系统使用或者保留端口,开发中建议使用1024以上的端口 - 传输协议(用什莫样的方式进行交互)
- 通讯规则
- 常见协议
Tcp&UDP
- TCP (传输控制协议)
- 建立连接,形成传输数据的通道
- 在连接中进行大数据传输(数据大小不做限制)
- 通过三次握手完成连接,是可靠协议,安全送达
- 必须建立连接,效率会稍低
- UDP (用户数据报协议)
- 将数据及源和目的封装成数据包中,不需要建立连接
- 每个数据报的大小限制在64k
- 因为无需连接,因此是不可靠协议
- 不需要建立连接,速度快
- TCP-如同打电话(三次握手)
- 1.拨打电话
- 2.对方接听电话(挂断电话导致第二次握手失败)
- 3.互相道一声:喂,(如果单方面,那还是失败) -
UDP-如同发短信
- 1.不需要对方是否开机还是关机或是停机
- 2.如果短信字数超过70k,或自动把短信给你分成两条
- 3.不知道短息什莫时候发送到对方手机上
实现Socket服务端监听
- 实现Socket监听的方法
- 1.使用C语言实现
- 2.使用CocoaAsyncSocket第三方框,内部是对C的封装
- Telnet命令 telnet host port/telnet 192.168.10.10 5288
-1. Telnet命令是监听服务器上的某个端口对应的服务器有没有开启
Socket层上的协议
- Socket层上的协议是指数据传输的格式
- HTTP协议
传输格式:假设:这是假设,实际http的格式不是这样的。
http1.1,content-type:multipart/fprm-data,content-length:
188,body:username-zhangsan&password=123456 - XMPP协议,是一款即时通讯协议
可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。
传输格式:
<from>zhangsan<from>
<to>lisi<to>
<boby>一起吃晚上</body>