当前位置: 首页 > news >正文

【JavaEE】网络编程(网络编程基础、Socket套接字)

一、网络编程基础

1.1、什么是网络编程?

网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)在这里插入图片描述
注意:我们只要满足进程不同就行;所以即便是同一个主机,只要是不同进程,基于网络来传输数据,也属于网络编程。对于开发来说,在条件有限的情况下,一般也都是在一个主机中运行多个进程来完成网络编程。
但是,我们一定要明确,我们的目的是提供网络上不同主机,基于网络来传输数据资源:
进程A:编程来获取网络资源
进程B:编程来提供网络资源

1.2 网络编程中的基本概念

1.2.1 发送端和接收端

发送端:数据的发送方进程,称为发送端。发送端主机即网络通信中的源主机。
接收端:数据的接收方进程,称为接收端。接收端主机即网络通信中的目的主机。
收发端:发送端和接收端两端,也简称为收发端。

1.2.2 请求和响应

在这里插入图片描述

1.2.3 客户端和服务端

服务端:在常见的网络数据传输场景下,把提供服务的一方进程,称为服务端,可以提供对外服务。
客户端:获取服务的一方进程,称为客户端。

对于服务来说,一般是提供:客户端获取服务资源和客户端保存资源在服务端

1.3 常见的客户端服务端模型

在这里插入图片描述

二、Socket套接字

2.1 什么是Socket?

我们要使用QQ发送消息,想要真正发这个数据,需要上层协议调动下层协议,应用层调动传输层:传输层给应用层提供一组api,统称为Socket api

2.2 分类

系统提供的socket api主要有两种:
基于UDP的api
基于TCP的api

这两个都是传输层协议,但是差距很大,它们的api也就差别很大
![在这里插入图片描述](https://img-blog.csdnimg.cn/e47ea2

2.3 UDP数据报套接字通信模型

对于UDP协议来说,具有无连接,面向数据报的特征,即每次都是没有建立连接,并且一次发送全部数据报,一次接收全部的数据报

java中使用UDP协议通信,主要基于 DatagramSocket 类来创建数据报套接字,并使用 DatagramPacket 作为发送或接收的UDP数据报。

注意:
使用 DatagramSocket 类创建出来的socket对象对应系统中一个特殊的文件(socket文件),socket文件对象对应网卡,相当于控制网卡的遥控器。
往这个文件里写数据相当于用网卡发送消息
从这个文件里读数据相当于用网卡接收消息

对于一次发送及接收UDP数据报的流程如下:
在这里插入图片描述

2.4 TCP流套接字通信模型

在这里插入图片描述

相关文章:

【JavaEE】网络编程(网络编程基础、Socket套接字)

一、网络编程基础 1.1、什么是网络编程? 网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输) 注意:我们只要满足进程不同就行;所以即便是同一…...

Node学习笔记之模块化

一、介绍 1.1 什么是模块化与模块 ? 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化 其中拆分出的 每个文件就是一个模块 ,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他 模块使用 1…...

用matlab求解线性规划

文章目录 1、用单纯形表求解线性规划绘制单纯形表求解: 2、用matlab求解线性规划——linprog()函数问题:补充代码:显示出完整的影子价格向量 1、用单纯形表求解线性规划 求解线性规划 m i n − 3 x 1 − 4 x 2 x 3 min -3x_1-4x_2x_3 min−…...

antd获取/更改form表单数据(表单域数据)

创建ref引用 formRef React.createRef();表单和ref绑定 //ref{this.formRef} 先给Form <Form ref{this.formRef} name"control-ref" onFinish{this.onFinish}><Form.Item name"name" label"Name" rules{[{ required: true }]}>…...

Go学习第三章——运算符与进制

Go学习第三章——运算符与进制 1 算术运算符2 关系运算符3 逻辑运算符4 赋值运算符5 其他运算符5.1 位运算符5.2 跟指针有关的运算符 6 运算符的优先级7 获取用户终端输入8 进制转换8.1 进制基本使用8.2 进制之间的转换8.3 原码 反码 补码8.4 位运算符详解 运算符是—种特殊的符…...

H3C IMC dynamiccontent.properties.xhtm 远程命令执行

我举手向苍穹&#xff0c;并非一定要摘星取月&#xff0c;我只是需要这个向上的、永不臣服的姿态。 构造payload&#xff1a; /imc/javax.faces.resource/dynamiccontent.properties.xhtml pfdrtsc&lnprimefaces&pfdriduMKljPgnOTVxmOB%2BH6%2FQEPW9ghJMGL3PRdkfmbii…...

【技能树笔记】网络篇——练习题解析(八)

目录 前言 一、LAN技术 1.1 堆叠与集群 1.2 MSTP的特点 二、WAN技术 2.1 PPP链路建立 2.2 PPPoE 2.3 组播 2.3.1 组播的IP 2.3.2 组播分发树 2.3.3 组播协议 三、IPv6基础 3.1 IPv6地址 3.2 IPv6协议 3.3 IPv6过渡技术 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1…...

laravel框架介绍(二)

方法1.windows 可以直接下载 Composer-Setup.exe 方法2.配置php.exe目录环境变量,下载 composer.phar和php.exe平级目录, 新建 composer.bat 文件编辑以下内容 php "%~dp0composer.phar" %* 运行composer.bat ,出现版本号为成功 执行 composer self-update 以保持 Co…...

USB学习(1):USB基础之接口类型、协议标准、引脚分布、架构、时序和数据格式

连接计算机外围设备最简单的方法是通过USB(通用串行总线)。USB是即插即用接口&#xff0c;可以将扫描仪、打印机、数码相机、闪存驱动器等计算机外围设备连接到计算机上。本篇文章就来介绍一下USB的一些基础知识&#xff0c;包括。 文章目录 1 接口类型和标准规范2 引脚分布3 …...

less和scss语法详解

比较好的博客文章&#xff1a;Less使用语法&#xff08;详细&#xff09;&#xff1a;https://blog.csdn.net/weixin_44646763/article/details/114193426 SCSS基本语法&#xff1a;https://www.jianshu.com/p/4efaac23cdb6 总结&#xff1a;我理解的点&#xff1a; 1、符号声…...

【计算机网络笔记】TCP/IP参考模型基本概念,包括五层参考模型

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…...

RSA加密与签名的区别

文章目录 一、签名验签原理二 RSAUtils 工具类三、通过x509Certificate来获取CA证书的基本信息四、 通过公钥获取公钥长度 一、签名验签原理 签名的本质其实就是加密&#xff0c;但是由于签名无需还原成明文&#xff0c;因此可以在加密前进行哈希处理。所以签名其实就是哈希加…...

arcgis js api 4.x通过TileLayer类加载arcgis server10.2发布的切片服务跨域问题的解决办法

1.错误复现 2.解决办法 2.1去https://github.com/Esri/resource-proxy 网站下载代理配置文件&#xff0c;我下载的是最新的1.1.2版本&#xff0c;这里根据后台服务器配置情况不同有三种配置文件&#xff0c;此次我用到的是DotNet和Java. 2.2 DotNet配置 2.2.1 对proxy文件增加…...

如何让chatGPT给出高质量的回答?

如何让chatGPT给出高质量的回答&#xff1f; ChatGPT从入门到进阶教程合集_哔哩哔哩_bilibili 公式 【指令词】【背景】【输入】【输出要求】 1. 指令词 ——精准任务or命令 如&#xff1a;简述、解释、翻译、总结、润色 2. 背景 ——补充信息 如&#xff1a;简述一篇讲解…...

Java后端开发(八)-- idea(2022版)将commit(未push)的 本地仓库 的 单条commit记录 进行撤销

目录 1.修改Test01类后,提交到本地仓库 。 2.commit成功后,在Git =》Log中会显示,commit记录...

Mysql架构解析,InnoDB架构概述。

MySQL架构解析 Mysql整体架构 MySQL整体架构如下图所示&#xff1a; MySQL逻辑系统架构分为4层: 应用层MySQL服务层存储引擎层系统文件层 下面将对各层的功能和组件进行介绍&#xff0c;并探讨一条语句的执行过程。 应用层 应用层是MySQL体系架构的最上层&#xff0c;它…...

jmeter如何测试websocket接口?

jmeter做接口测试&#xff0c;很多人都是做http协议的接口&#xff0c;就有很多人问websocket的接口怎么测试啊&#xff1f; 首先&#xff0c;我们要明白&#xff0c;websocket接口是什么接口。 然后&#xff0c;我们怎么用jmeter测试&#xff1f; jmeter要测试websocket接口…...

15 Transformer 框架概述

整体框架 机器翻译流程&#xff08;Transformer&#xff09; 通过机器翻译来做解释 给一个输入&#xff0c;给出一个输出&#xff08;输出是输入的翻译的结果&#xff09; “我是一个学生” --》&#xff08;通过 Transformer&#xff09; I am a student 流程 1 编码器和解…...

[架构之路-241]:目标系统 - 纵向分层 - 企业信息化与企业信息系统(多台企业应用单机组成的企业信息网络)

目录 前言&#xff1a; 一、什么是信息系统&#xff1a;计算机软件硬件系统 1.1 什么是信息 1.2 什么是信息系统 1.3 什么是信息技术 1.4 什么是信息化与信息化转型 1.5 什么是数字化与数字化转型&#xff08;信息化的前提&#xff09; 1.6 数字化与信息化的比较 1.7 …...

flink中使用异步函数的几个注意事项

背景 在flink系统中&#xff0c;我们为了补充某个流事件成一个完整的记录&#xff0c;经常需要调用外部接口获取一些配置数据&#xff0c;流事件结合这些配置数据就可以组合成一条完整的记录&#xff0c;然而如果同步调用外部系统接口来实现&#xff0c;那么会有很大的性能瓶颈…...

吊耳承载力与钢丝绳选型计算软件开发-集成吊耳受力分析工具及钢丝绳匹配计算器

温馨提示&#xff1a;文末有资源获取方式高效解决钢结构吊装难题的智能计算工具在大型建筑项目中&#xff0c;钢柱与钢梁的吊装环节至关重要。 面对不确定使用何种规格吊耳的情况&#xff0c;工程师常常面临安全与效率的双重挑战。 为此&#xff0c;我们开发了集吊耳承重计算与…...

tools video、PDFka

链接&#xff1a;https://pan.quark.cn/s/e4446a9373c6网上在线工具五花八门&#xff0c;不少要么广告弹窗满天飞&#xff0c;要么藏着付费套路&#xff0c;实际体验大打折扣。今天给大家挖到 3 个亲测好用的宝藏工具&#xff0c;免费无套路&#xff0c;功能拉满&#xff0c;用…...

【医学影像AI合规生死线】:2026奇点大会联合NMPA、FDA、EMA发布的全球首个可解释性审计框架(含6类高风险误判溯源模板)

第一章&#xff1a;2026奇点智能技术大会&#xff1a;医学影像分析 2026奇点智能技术大会(https://ml-summit.org) 临床级模型推理流水线设计 大会首次发布开源框架MediFlow v2.1&#xff0c;专为多模态医学影像&#xff08;CT、MRI、超声&#xff09;实时推理优化。该框架支…...

MCP协议如何重塑前端开发工作流

前言 2026年&#xff0c;AI与前端开发的融合进入新阶段。MCP&#xff08;Model Context Protocol&#xff09;协议作为Anthropic推出的开放标准&#xff0c;正在彻底改变我们构建AI驱动应用的方式。本文将深入探讨MCP在前端工程中的实战应用。 正文 一、MCP协议核心概念 MCP协议…...

Cursor Pro 完整破解指南:开源工具实现永久免费使用的7个关键步骤

Cursor Pro 完整破解指南&#xff1a;开源工具实现永久免费使用的7个关键步骤 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reach…...

揭秘:如何用Scrapy框架构建高效拼多多爬虫系统

揭秘&#xff1a;如何用Scrapy框架构建高效拼多多爬虫系统 【免费下载链接】scrapy-pinduoduo 拼多多爬虫&#xff0c;抓取拼多多热销商品信息和评论 项目地址: https://gitcode.com/gh_mirrors/sc/scrapy-pinduoduo scrapy-pinduoduo 是一个基于Scrapy框架的专业级拼多…...

城通网盘解析器:3步解决下载慢、广告多的终极方案

城通网盘解析器&#xff1a;3步解决下载慢、广告多的终极方案 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘下载速度慢如蜗牛而烦恼吗&#xff1f;还在被层层广告弹窗折磨得耐心全无吗…...

**发散创新:用Python构建高扩展性BI工具的核心数据管道**在当今数据驱动的时代,企业对

发散创新&#xff1a;用Python构建高扩展性BI工具的核心数据管道 在当今数据驱动的时代&#xff0c;企业对商业智能&#xff08;BI&#xff09;工具的需求已经从“能看”走向“能用、能扩、能快”。传统BI工具如Tableau或Power BI虽然强大&#xff0c;但面对复杂业务场景时往往…...

GD32F103C8T6实战:手把手教你用Ymodem协议实现IAP升级(附完整代码)

GD32F103C8T6实战&#xff1a;从零构建Ymodem协议IAP升级系统 在嵌入式设备远程维护中&#xff0c;固件升级的可靠性直接决定了产品生命周期。当GD32F103C8T6遇上Ymodem协议&#xff0c;这个成本仅10元级的Cortex-M3芯片就能实现媲美高端产品的无接触升级体验。本文将用真实项目…...

没带手表那天我反而跑顺了:找回你的“自动负载均衡”

没记录的汗水&#xff0c;是不是就白流了&#xff1f;老马今天跟你聊聊咱们这个系列的最后一篇&#xff1a;脱表。一个周末&#xff0c;我起了个大早&#xff0c;换好衣服穿好跑鞋&#xff0c;习惯性地拿起手表准备出门。结果一按屏幕——黑的&#xff0c;昨晚忘充电了。按说这…...