<JavaEE> 网络编程 -- 网络编程和 Socket 套接字

目录

一、网络编程的概念

1)什么是网络编程?

2)网络编程中的基本概念

1> 收发端

2> 请求和响应

3> 客户端和服务端

二、Socket套接字

1)什么是“套接字”?

2)Socket套接字的概念

3)Socket分类

1> 针对传输层协议,Socket套接字划分出了哪几个类?

2> 流套接字和数据报套接字特点的对比


一、网络编程的概念

1)什么是网络编程?

网络编程是指在网络环境下的主机,通过不同的进程,以编程的方式实现网络通信或网络数据传输。
基于网络环境下,即使是同一个主机,只要是不同进程间的数据传输,也属于网络编程。

2)网络编程中的基本概念

1> 收发端

发送端是指数据的发送方进程,即网络通信中的源主机。
接收端是指数据的接收放进程,即网络通信中的目的主机。
接收端和发送端并称为收发端。

2> 请求和响应

请求(request)发送请求,以期望获得某些数据。
响应(response)对接收到的请求做出反馈。

3> 客户端和服务端

客户端(client)在网络数据传输环境下,获取服务的一方进程称为客户端。
服务端(server在网络数据传输环境下,提供服务的一方进程称为服务端。
服务端提供的服务包括但不限于为客户端反馈数据、为客户端保存数据。

常见客户端服务端模型:

二、Socket套接字

1)什么是“套接字”?

初见“套接字”这样的翻译,我是觉得相当离谱的,特别是一开始我是这么读的,“套”/“接字”。这就导致我根本无法理解这个词的含义,学习了“套接字”的含义之后,才明白原来是“套接”/“字”。
那么“套接字”究竟是在表达什么?在理解这个词之前,我们先看看另外一个词,“套接管”。
“套接管”是指在两个载体的接口之间套上一根用于连接的管子,这样就可以做到在不考虑载体接口口径的情况下,使载体之间可以有物质交流的路径。比如两根口径不一样的水管,使用“套接管”就可以将两根水管相连,并使水可以流动。
Socket直译是插口/插座的意思,作用是让不同主机之间可以经由网络,通过“数据流”进行数据交互。
由此我们可以发现,Socket的作用与上述的“套接管”作用十分相似,但Socket是一个单词而不是一根管,所以“套接管”,就变成了“套接字”。(极度怀疑这个词的第一个翻译者,应该懂得一些管道相关的知识)
因此,在了解为什么叫“套接字”之后,就觉得这个翻译还是比其它一些翻译好多了。没错说的就是你,“鲁棒性”。不仅是简单粗暴的音译,连使用的字也令人难以理解,离了个大谱。

2)Socket套接字的概念

Socket套接字,是由系统提供的由于网络通信的技术,是基于TCP/IP协议的网络通信基本操作单元。基于Socket套接字的网络程序开发就是网络编程。

Socket API 就可以认为是应用层和传输层之间的交互手段,通过 Socket API 就可以完成不同主机,不同系统之间的网络通信。

3)Socket分类

1> 针对传输层协议,Socket套接字划分出了哪几个类?

主要划分出了“流套接字”和“数据报套接字”
流套接字:使用传输层TCP协议。TCP指Transmission Control Protocol(传输控制协议)。

数据报套接字:使用传输层UDP协议。UDP指User Datagram Protocol(用户数据报协议)。

2> 流套接字和数据报套接字特点的对比

流套接字(TCP)数据报套接字(UDP)说明
有连接无连接在双方通信时是否保存了彼此的关键信息。
可靠传输不可靠传输传输后有无确认是否发送到位。
面向字节流面向数据报以字节流进行传输,还是以数据报为单位进行传输。
有接收缓冲区和发送缓冲区有接收缓冲区,无发送缓冲区
大小不限大小受限,一次传输最多64KB数据流长度不限,而数据报是有长度限制的。
全双工全双工使用一个Socket对象,既能发送数据又能接收数据,称为全双工。

阅读指针 -> 《回显服务器》

链接生成中........

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

整数比较(比较4个数并从小到大输出)C语言xdoj94

描述: 从键盘输入四个整数,要求按由小到大的顺序输出。 输入说明: 输入四个整数,以空格间隔。 输出说明: 输出排序后的整数,以空格间隔。 输入样例 样例1输入 -99 9 99 -9 输出样例 样例1输出 -99 -9 9 99 …

关于“Python”的核心知识点整理大全32

目录 12.6.4 调整飞船的速度 settings.py ship.py alien_invasion.py 12.6.5 限制飞船的活动范围 ship.py 12.6.6 重构 check_events() game_functions.py 12.7 简单回顾 12.7.1 alien_invasion.py 12.7.2 settings.py 12.7.3 game_functions.py 12.7.4 ship.py …

JavaGUI(但期末速成版)之JFrame和JDialog

前言 学到期末发现越来越没时间来细写这些东西了,毕竟蒟蒻博主的发展方向主要需要学的不是Java,但为了期末高分通过,也不得不花一些精力上来,于是有了这样一篇速成GUI,本篇会以十分精简的语言来学习,主打一…

CN3302 PFM升压型双节电池充电控制集成电路外置MOS管 双节锂电池充电IC

CN3302是一款工作于2.7V到6.5V的PFM升压型双节鲤电池充电控制集成电路。CN3302采用恒流和准恒压模式(Quasi-CVTM)对电池进行充电管理,内部集成有基准电压源,电感电流检测单元,电池电压检测电路和片外场效应品体管驱动电路等,具有外…

企业网络常用技术-快速生成树RSTP原理与配置

STP协议虽然能够解决环路问题,但是收敛速度慢,影响了用户通信质量。如果STP网络的拓扑结构频繁变化,网络也会频繁失去连通性,从而导致用户通信频繁中断。IEEE于2001年发布的802.1w标准定义了快速生成树协议RSTP(Rapid …

微信基于StarRocks的湖仓一体实践

作者:StarRocks Active Contributer、微信 OLAP 内核研发工程师 微信作为国内活跃用户最多的社交软件,其数据平台建设经历了从 Hadoop 到 ClickHouse 亚秒级实时数仓的阶段,但仍旧面临着数据体验割裂、存储冗余的问题。通过 StarRocks 的湖仓…

时钟偏移与时钟抖动

1、时钟偏移 如下图所示,由于布局布线导致,clk到达三个触发器的时间是不一样的。这个就是时钟偏移,对每个触发器而言,不会改变时钟周期。 2、时钟抖动 如下图所示,指芯片的某一个给定点上时钟周期发生暂时性变化&…

【Spring】15 ApplicationContextAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean 信息3.3 创建启动类3.4 启动 4. 应用场景总结 Spring 框架提供了许多回调接口,用于在 Bean 的生命周期中执行特定的操作。ApplicationContextAware 接口是其中之一,它允许 Bean 获取对 A…

SM5321 是一款带动态路径管理的开关型单节锂电池充电电路。

SM5321 2.5A.1MHz 带动态路径管理的开关型单节锂电池充电电路 简介: SM5321 是一款带动态路径管理的开关型单节锂电池充电电路。SM5321 可提供 2.5A 的充电电流,特别适合移动电源、平板电脑等配备超大容量锂电池的设备。SM5321 内部集成了大电流同步降压…

SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题

文章目录 问题描述解决方案结束语 大家好!今天是2023年12月212日 | 农历十一月初九(距离2024年还有一周左右的时间),最近还是比较忙的,忙着搞钱,毕竟马上过年啦。 问题描述 感谢大家对我一直以来的支持与帮助,今天这边…

IDEA 黑色主题很难看到鼠标

“控制面板”—搜索“鼠标”关键字—选择“更改鼠标设置” 参考: IDEA 黑色主题很难看到鼠标

JDBC常见的几种连接池使用(C3PO、Druid、HikariCP 、DBCP)

✨前言✨ 本篇作为主要在于介绍jdbc数据库连接池,以及多种连接池的用法 🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍒博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 文章目…

计算机基础:网络基础

目录 一.网线制作 1.制作所需要工具 网线制作标准 ​编辑 2.水晶头使用 3.网线钳使用 4.视频教学 二.集线器、交换机介绍 1.OSI七层模型 2.TCP/IP四层参考模型 3.集线器、交换机。路由器介绍 集线器 交换机 路由器 区别 三.路由器的配置 1.路由器设置 说明书 设…

智能优化算法应用:基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.水基湍流算法4.实验参数设定5.算法结果6.…

Python:正则表达式---贪婪匹配

在正则表达式中,贪婪匹配是指匹配尽可能多的字符,而非贪婪匹配(也称为懒惰匹配或最小匹配)则是匹配尽可能少的字符。 .* 表示匹配任意数量的任意字符(除换行符外)。贪婪匹配会将尽可能多的字符都作为匹配结…

macOS 安装 oh-my-zsh 后 node 报错 command not found : node

最近为了让终端中显示 git 分支的名称,安装了 oh-my-zsh ,安装之后呢,我原先安装的 Volta、 node 都没法用了,报错如下: 这时候粗略判断应该是系统变量出了问题,oh-my-zsh 的变量文件是 ~/.zshrc&#xff0…

变分自动编码器【03/3】:使用 Docker 和 Bash 脚本进行超参数调整

一、说明 在深入研究第 1 部分中的介绍和实现,并在第 2 部分中探索训练过程之后,我们现在将重点转向在第 3 部分中通过超参数调整来优化模型的性能。要访问本系列的完整代码,请访问我们的 GitHub 存储库在GitHub - asokraju/ImageAutoEncoder…

Linux(二)常用命令

文章目录 一、文件管理命令1.1 chmod1.2 chown1.3 cat1.4 cp1.5 find1.6 head1.7 tail1.8 less1.9 more1.10 mv1.11 rm1.12 touch1.13 vim1.14 >和>>1.15 scp1.16 ln1.17 怎么用命令查看日志 二、文档管理命令2.1 grep2.2 wc2.3 echo 三、磁盘管理命令3.1 cd3.2 df3.3…

短视频账号矩阵系统3年独立开发正规接口源码搭建部署开发

一、矩阵系统源码主要有三种框架: 短视频账号矩阵源码的框架有很多种,以下列举其中几种: 1. **星图矩阵**:星图矩阵是抖音官方向商家提供的短视频广告推广平台,是抖音官方的赚钱工具。商家可利用星图矩阵进行广告推广…

适用于车载电动升窗器的解决方案

升窗器是指避免车主忘记关窗的自动关窗装置,主要通过电子模块加认组合,利用主机上的芯片里面设定的程序完成检测功能,使自动升窗步骤顺利完成。 ■ 基于ACM32F403系列MCU ■ 高性价比软件控制方案,高算力 ■ MCU内置2路CAN总线&a…