zoukankan      html  css  js  c++  java
  • 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连接,服务器需要等待客户端发送一次请求时,才能将数据传回给客户端,客户端定时向服务器发送连接请求,不仅可以保护在线,同时也是在询问服务器是否有新的数据,如果有就将数据传回客户端。

  • 相关阅读:
    MySQL时间函数
    Linux安装php运行环境
    linux 防火墙配置
    CENTOS启动后网卡启动不了
    价值
    浏览器STATUS_INVALID_IMAGE_HASH报错解决方法
    wordpress更改域名最简单的方法
    Connection to 天mysql failed. [08001] Could not create connection to database server. Attempted ,报错处理方法
    centos实现三个节点高可用
    安装nginx1.16.1版本
  • 原文地址:https://www.cnblogs.com/whp0224/p/9503136.html
Copyright © 2011-2022 走看看