知识储备:socket详解

时间:2023-02-21 14:11:02

Socket总结
每一条TCP连接呢都由两个Socket来确定:客户端Socket和服务端Socket,一个Socket呢又指定了两个参数:ip地址还有端口号。
,这两个参数刚好可以用来标识网络中特定主机的特定进程。

TCP连接 = {socket1, socket2} = {(ip2, port2),(ip2, port2)}

java Socket的通信过程就是

  1. 首先服务端创建一个绑定到特定端口号的ServerSocket,然后开启线程死循环监听客户端的连接
  2. 客户端根据服务端Socket提供的ip地址和端口号,创建连接到指定服务端的客户端Socket对象
  3. 连接成功之后通过Socket获得输入输出流对象,这样服务端和客户端就连接好了,之后就可以通过输入输出流对象进行双向通信了。

socket总体概述

  1. 概念:网络上的两个程序通过一个双向的通信连接实现的数据的交换,这个连接的一端成为一个socket。
  2. 理解:socket本质上提供了进程通信的端点,进程通信之前,双方首先各自创建一个端点,否则没法建立联系并相互通信。(这就类似于打电话双发必须要有一个电话机一样)
  3. 连接过程
    1) 服务器监听:服务器socket一直处于等待连接的状态,监听客户端发出的连接请求
    2) 客户端请求:客户端socket发出连接请求。这时就要指定目标服务器socket的IP地址和端口号。
    3) 确认连接:服务器端socket接受到客户端socket的连接请求后,开启一个线程,把服务器端socket的描述发给客户端,一旦客户端确认了这个描述,连接就建立好了。而服务器端socket继续处于监听状态。

java Socket介绍

  1. java socket通信过程
    1) 服务端创建一个绑定特定端口的ServerSocket,并调用accept方法监听客户端的连接请求。
    2) 客户端创建一个客户端socket,这个socket指明了要连接的服务器socket的IP地址和端口号。
    3) 两个socket连接成功后,客户端和服务端就可以通过输入输出流进行双向通信。
    4) 通信结束后,关闭socket和输入输出流。