..........(此处略去万万字)学习中曲折的过程不介绍了,直接说结果
我的学习方法,问自己三个问题,学习过程将围绕这三个问题进行
what:socket是什么
why:为什么要使用socket
how:怎么使用
1. socket是什么
首先要了解网络通信协议,ISO模型的七个分层,分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层(具体每一层的作用,谷歌搜索),理解相关协议,重点理解TCP/IP,UDP协议
socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。(摘自百度百科)
学习资料:简单理解Socket
2. 为什么要使用socket
Socket 传输的特点:
优点
1) 传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低)
2) 传输数据时间短,性能高
3) 适合于客户端和服务器端之间信息实时交互
4) 可以加密,数据安全性强
缺点:
1) 需对传输的数据进行解析,转化成应用级的数据
2) 对开发人员的开发水平要求高
3) 相对于Http协议传输,增加了开发量
摘自服务器和客户端的交互方式(Socket,http协议)和各自特点适用范围
3. 怎么使用socket
放慢走路的步伐,你可以看到更多路边优美的风景