什么是Socket ? Socket 的三次握手,四次挥手是什么过程?

什么是Socket ?

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个
socket;

Socket 本质是编程接口(API),对 TCP/IP 的封装;TCP/IP 也要提供可供程序员做网络开发所用的接口,这就是 Socket 编程接口;

Socket通常也称作"套接字",用于描述 IP 地址和端口,是一个通信链的句柄,可以用来实现不同虚
拟机或不同计算机之间的通信。在 Internet 上的主机一般运行了多个服务软件,同时提供几
种服务。每种服务都打开一个 Socket,并绑定到一个端口上,不同的端口对应于不同的服务。

Socket 连接步骤

  1. 服务器监听:指服务器端套接字并不定位具体的客户端套接字,而是处于等待连
    接的状态,实时监控网络状态。
  2. 客户端请求:指由客户端的套接字提出连接请求,要连接的目标是服务器端的
    套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套
    接字的地址和端口号,然后就向服务器端套接字提出连接请求。
  3. 连接确认:指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,
    它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,
    一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接
    收其他客户端套接字的连接请求。
    在这里插入图片描述

Java 中的 Socket

java.net 包是网络编程的基础类库。
其中 ServerSocket 和 Socket 是网络编程的基础类型。ServerSocket 是服务端应用类型。Socket 是客户端建立连接的类型。当连接建立成功后,服务器和客户端都会有一个 Socket 对象示例,可以通过这个 Socket 对象实例,完成会话的所有操作。
对于一个完整的网络连接来说,Socket 是平等的,没有服务器客户端分级情况。

猜你喜欢

转载自blog.csdn.net/weixin_37646636/article/details/120541489