套接字详解

Posted 过往将来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了套接字详解相关的知识,希望对你有一定的参考价值。

什么是套接字

  1. 套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。
  2. 一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。
  3. 套接字是应用程序通过网络协议进行通信的接口,是应用程序与网络协议进行交互的接口

套接字的表示方法

  1. 套接字Socket=(IP地址:端口号),套接字的表示方法是点分十进制的lP地址后面写上端口号,中间用冒号或逗号隔开。
  2. 每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。例如:如果IP地址是192.168.0.1,而端口号是23,那么得到套接字就是(192.168.0.1:23)

套接字工作流程

  1. 通过互联网进行通信,至少需要一对套接字,其中一个运行于客户端,我们称之为 Client Socket,另一个运行于服务器端,我们称之为 Server Socket
  2. 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:
    1.服务器监听:指服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态
    2.客户端请求:指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端接字提出连接请求
    3.连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求,就会响应客户端套接字的请求,建立一个新的线程,并把服务器端套接字的描述发送给客户端。一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,接收其他客户端套接字的连接请求

以上是关于套接字详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux 套接字socket与寻址详解

HTTP头部详解及使用Java套接字处理HTTP请求

Linux中ss用法详解

Linux中ss用法详解

Linux中ss用法详解

Linux下套接字详解---epoll模式下的IO多路复用服务器