Socket 是网络编程中重要的一项技术,在计算机的领域 Socket 又被称为套接字,它是计算机之间通讯的一种方式用以完成数据交互。
本篇 Chat 将主要从 Socket 的发展简述、原理概述、Socket 是如何进行网络通讯的、使用 Java 语言实现 Socket 的通讯应用四个方面来进行说明及应用,希望能给网络编程的朋友带来启发。
本篇 Chat 的主要内容包括 Socket 的发展简述、原理概述、架构详解及运用 Java 语言进行模拟服务端和客户端实现通讯,主要适合利用 Java 语言进行网络编程的时间应用,希望可以对大家有所帮助。
二、Socket 的发展简述
首先,在了解 Socket 之前,我们先来明确一下网络的七层架构。也就是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
HTTP 协议对应于应用层、TCP 协议对应于传输层、IP 协议对应于网络层,而 Socket 其实就是对 TCP 协议进行的封装所暴露出来的一个接口可以直接供我们研发人员调用。在 70年代,美国加利福尼亚大学将 TCP/IP 应用到 Unix 中以后,就诞生了被称之为 Socket 的网络编程 API 的调用,随后进行了更多的发展,比如由微软联合制定的网络编程规范等等。
三、原理概述及 Socket 架构详解
3.1 Socket 工作流程架构简述
下面我们来看一张 Socket 通讯的架构图:
在这里插入图片描述
图片引用地址
根据上述 Socket 的工作流程架构图可以清晰地看到服务端、客户端的数据请求和响应的过程。
首先,客户端的连接请求是比较简单的,只需要建立连接之后进行数据请求然后对返回的数据进行接收即可。而服务端要对连接进行绑定、监听、允许连接之后才可以和客户端完成连接从而进行后面的数据请求处理。
在明白了上述 Socket 的简单的工作流程之后,下面进行 Socket 的简单原理概述。
3.2 Socket 基本概念及原理概述
首先,我们先进行一些基本概念的介绍,可能在日常的研发工作中我们都曾经使用过,下面来进行一些概念的基本介绍。
端口:它可以被理解为是计算机操作系统可以分配的一种
隐藏内容