Socket原理

1.套接字Socket概念

        套接字(Socket)是通信的基石,是支持TCP/IP协议的基本操作单元,它是网络通信过程中的

端点的抽象表示,包含进行网络通信必须的五种信息,连接使用协议,本地主机的IP地址,本地的协议端口,远地主机的IP地址,远地进程的协议端口。

       应用层通过传输层进行数据通信时候,TCP会遇到同时为多个应用程序提供并发服务的问题,多个TCP连接或多个应用进程可能要通过同一个TCP协议端口传输数据,为了区别不同的应用程序进程和连接。

许多计算机操作系统为应用程序进程或网络连接的通信,实现数据的并发服务。

 

建立Socket连接

 

    建立Socket连接至少需要一对套接字,齐总一个运行于客户端,称为ClientSocket,另外一个运行于服务器端,称为ServerSocket

    套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。   

服务器监听:等待客户端连接

客户端请求:发出连接请求,要连接上的是目标服务器上的套接字,而客户端的套接字必须描述

首先描述它要连接的服务器的套接字,指出服务器端套接字的IP地址和端口向服务器端套接字提出连接请求。

连接确认,服务器端套接字收到客户端请求后,就响应客户端套接字的请求,建立一个新的线程,

服务端的套接字的描述发送给客户端,一旦客户端确认了此描述,双方建立了连接,而且服务器端

套接字继续处于监听状态,继续接受其他客户端发来的连接请求。

三:创建Socket连接时,可以指定使用传输层协议,Socket可以支持不同的传输层协议,(TCP/IP),当使用TCP协议进行连接时候,该Socket连接就是一个TCP连接。

建立连接的过程中的中间过程会有,路由器,防护墙,网关,防火墙会中断长时间处于非活状态的连接而导致Socket中断,因此要通过轮询告诉网络,该连接处于活跃状态。

 

HTTP 连接使用的是“请求-响应”的方式,不仅在请求时需要建立连接,而且需要客户端向服务器发出请求后,服务器才能恢复数据

很多情况下,服务器主动向客户端推送数据,保持客户端与服务器的实时与同步,此时若双方建立的是Socket 连接,服务器就可以将数据直接传送给客户端,双方若建立的额是HTTP连接,服务器需要等待客户端发送一次请求时,才能将数据传回给客户端,客户端定时向服务器发送连接请求,不仅可以保护在线,同时也是在询问服务器是否有新的数据,如果有就将数据传回客户端。

 

posted on 2018-08-19 22:57  平大爷  阅读(99)  评论(0编辑  收藏  举报

导航