socket理解
-套接字socket是通信的基石,是介于传输层(tcp/udp)和应用层(http等)之间,支持tcp/ip协议的网络基本操作单元。包含网络通信的信息:连接使用的协议(tcp udp等),本地主机的ip地址,本地进程的协议端口号,远程主机的ip地址,远程进程的协议端口号。
建立socket连接
-连接一般分为三个步骤
1.服务器监听:服务器搭建好服务后等待监听客户端的请求。
2.客户端请求:当我们客户端需要发送请求,要连接的目标是服务器地址和端口号。
3.连接确认:当服务器监听到客户端的连接请求时,就会响应客户端的请求,建立一个新的进程,并把服务器的socket描述发给客户端,一旦客户端确认,双方就建立连接。而服务器socket处于继续坚挺状态,监听其他客户端的连接请求(例如我们的即时聊天)。
socket与tcp连接
socket可以指定使用的传输层协议,当使用tcp协议进行连接时,该socket就是tcp连接。正常情况下socket是tcp连接。
但是实际网络的环境中,客户端到服务器之间的通信往往通过路由器、网关、防火墙等,可能会导致长连接失效断开连接,而服务器也会根据资源开销关闭不活跃的连接,因此需要通过轮训的方式告诉网络,这条连接还处于活跃状态。
而真正达到全双工的通信的话,可以基于http的websocket进行通信。
websocket是应用层协议,socket是一个套接字接口,严格上说不是协议,这两个不是一个东西,而GCDAsyncSocket是基于scoket的封装,使用也很简单。
网友评论