第二十一章总结

news2025/1/24 2:11:31

一、网络通信:

1.网络程序设计基础:网络程序设计编写的是与其他计算机进行通信的程序。

1.1局域网与互联网:为了实现两台计算机的通信,必须用一个网络线路连接两台计算机

2.网络协议:网络协议规定了计算机之间连接的物理、机械(网线与网卡的连接规定)、电气(有效的电平范围)等特征,计算机之间的相互寻址规则,数据发送冲突的解决方式,长数据如何分段传送与接收等内容。

2.1.IP协议:IP是Intermet Protocol 的简称,是一种网络协议。Interet 网络采用的协议是TCP/IP 协议,其全称是Transmission Control Protocol/Internet Protocol。Interet 依靠 TCP/IP 协议,在全球范围内实现了不同硬件结构、不同操作系统、不同网络系统间的互联。

2.2.TCP与UDP协议:在 TCP/IP 协议栈中,有两个高级协议是网络应用程序编写者应该了解的,即传输控制协议(Transmission Control Protocol,TCP) 与用户数据报协议 (User Datagram Protocol,UDP)。

2.3端口与套接字:一般而言,一台计算机只有单一的连到网络的物理连接(Physical Connection),所有的数据都通过此连接对内、对外送达特定的计算机,这就是端口。

二、TCP程序:TCP网络程序设计是指利用Socket类编写通信程序。利用TCP协议进行通信的两个应用程序主次之分的,一个称为服务器程序,另一个称为客户机程序,两者的功能和编写方法大不一样。

1.InetAddress 类java.net 包中的 netAddress 类是与 P 地址相关的类用该类可以获取P 地址、主机地址等信息。

2.ServerSocket 类:java.net 包中的 ServerSocket 类用于表示服务器套接字,其主要功能是等待来自网络上的“请”它可通过指定的端口来等待连接的套接字。服务器套接字一次可以与一个套接字连接。

ServerSocket类的构造方法通常会抛出IOException 异常,具体有以下几种形式:

ServerSocket():创建非绑定服务器套接字。
ServerSocket(int port): 创建绑定到特定端口的服务器套接字。
ServerSocket(int port,int backlog): 利用指定的 backlog 创建服务器套接字,并将其定到指定的本地端口号上。
ServerSocket(int port,int backlog,InetAddress bindAddress): 使用指定的端口、听backloe要绑定到的本地 IP 地址创建服务器。

3. TCP网络程序设计:明白了 TCP 程序工作的过程,就可以编写 TCP 服务器程序了。在网络编程中,如果只要求客户机向服务器发送消息,不要求服务器向客户机发送消息,称为单向通信。客户机套接字和服务器套接字连接成功后,客户机通过输出流发送数据,服务器则通过输入流接收数据。

三、UDP程序:用户数据报协议(UDP) 是网络信息传输的另一种形式。基于 UDP 的通信和基于 TCP 的通信不同,基于 UDP 的信息传递更快,但不提供可靠性保证。使用 UDP 传递数据时,用户无法知道数据能否正确地到达主机,也不能确定到达目的地的顺序是否和发送的顺序相同。

基于UDP通信的基本模式如下:
 将数据打包(称为数据包),然后将数据包发往目的地。
 接收别人发来的数据包,然后查看数据包。

发送数据包的步骤如下:                                                                                                                  (1)使用 DatagramSocket()创建一个数据包套接字。
(2)使用 DatagramPacket(byte buf, int offset, int length, InetAddress address, int port)创建要发送的数据包。
(3)使用 DatagramSocket 类的 send()方法发送数据包
接收数据包的步骤如下:
(1)使用 DatagramSocket(int port)创建数据包套接字,绑定到指定的端口                                     (2)使用DatagramPacket(byte[ buf;intlength)创建字节数组来接收数据包
(3)使用 DatagramPacket 类的 receive()方法接收 UDP 包。

1.DatagramPacket 类:java.net 包的 DatagramPacket 类用来表示数据包。DatagramPacket 类的构造方法如下:                                                                                                        DatagramPacket(byte[] buf, int length)。
DatagramPacket(byte[] buf, int length, InetAddress address, int port)。
第一种构造方法在创建 DatagramPacket 对象时,指定了数据包的内存空间和大小。第二种构造方法不仅指定了数据包的内存空间和大小,还指定了数据包的目标地址和端口。

2.DatagramSocket 类:java.net 包中的 DatagramSocket 类用于表示发送和接收数据包的套接字。该类的构造方法如下:  DatagramSocket()。
DatagramSocket(int port)。
DatagramSocket(int port, InetAddress addr)。
第一种构造方法创建 DatagramSocket 对象,构造数据报套接字,并将其绑定到本地主机任何可用的端口上。第二种构造方法创建 DatagramSocket 对象,创建数据报套接字,并将其绑定到本地主机的指定端口上。

3.UDP网络程序设计:根据前面所讲的网络编程的基本知识以及 UDP 网络编程的特点,下面创建一个广播数据报程序。广播数据报是一项较新的技术,其原理类似于电台广播。

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

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

相关文章

【精选】WebLogic-CVE-2017-3506

下载地址: https://github.com/Al1ex/CVE-2017-3506https://github.com/Al1ex/CVE-2017-3506 1.weblogic wls-wsat组件远程命令执行(CVE-2017-3506) 复现: ┌──(root💀kali)-[~/routing/红日2/CVE-2017-3506-mai…

C++利剑string类(详解)

前言:大家都知道在C语言里面的有 char 类型,我接下来要讲的 string 类功能是使用 char 类型写的类,当然这个是C官方写的,接下来我们将会学会使用它,我们会发现原来 char 这种类型是还能这么好用,授人以…

结构体精讲1

这一期我们讲一讲C语言中的自定义类型中的其中一种类型--->结构体 相信大家对于结构体都听了很久了吧,下面就由我来带领大家一起学习学习! 结构体类型是一种自定义的数据类型,用来组织不同类型的数据成员。结构体可以包含多个不同类型的…

【Proteus】绘制简单的电路图

参考书籍:微机原理与接口技术——基于8086和Proteus仿真(第3版)(作者:顾晖等),p111 1.放置元件 以8086为例: 确保处于元件模式,点击对应的按钮: 在元件库中…

【创意坊】技术征战:揭秘CSDN博客等级与原力等级的战略大计

目录 📋 前言 1. 博客等级 1.1 博客积分规则 1.2 博客等级划分 1.3 博客等级权益 2. 原力等级 2.1 原力积分规则 2.2 原力等级划分 2.3 原力等级权益 3. 文章点赞评论规则 📝总结 📋 前言 🌈个人主页:Sarapi…

PostgreSQL有意思的现象:支持不带列的表

1、前言 以前从没有试过建一张表,不带任何列。在PG中却支持这种语法。这是个什么鬼? 最近,把PG源码扒了下,简单浏览了下最近的一些merge。其中有一个fix: eeb0ebad79 ("Fix the initial sync tables with no columns.&qu…

【动手学深度学习】(六)权重衰退

文章目录 一、理论知识二、代码实现2.1从零开始实现2.2简洁实现 【相关总结】 主要解决过拟合 一、理论知识 1、使用均方范数作为硬性限制(不常用) 通过限制参数值的选择范围来控制模型容量 通常不限制偏移b 小的意味着更强的正则项 使用均方范数作为柔…

自定义登录页面模板(移动端)

login/index <script setup lang"ts"> </script><template><div class"login-page">//组件 由于配置了自动注册&#xff0c;所以无需引入<cp-nav-barright-text"注册"click-right"$router.push(/register)&quo…

elk:filebeat

elk:filebeat日志收集工具和logstash相同 filebeat是一个轻量级的日志收集工具&#xff0c;所使用的系统资源比logstash部署和启动时使用的资源要小的多。 filebeat可以运行在非java环境&#xff0c;他可以代替logstash在非java环境上收集日志。 filebeat无法实现数据的过滤…

外置固态硬盘配置

1、插上usb外置硬盘盒 2、邮件我的此“电脑”选择“管理” 3、例如新增的固态硬盘如下&#xff1a; 4、这里我选择mrb(旧模式)而没选guid(新模式) 因为mrb兼容模式更加适合windows、ios等系统 5、右击未分区磁盘&#xff0c;选择新增卷区&#xff0c;一路下一步即可

顶级设计师力荐的界面设计软件,设计新选择

即时设计 作为专业的在线协作UI设计软件&#xff0c;即时设计可以实现视觉效果、交互效果、体验效果一站成型&#xff0c;为你的目标用户创造流畅体验。 轻松绘制原型&#xff1a;借助社区设计资源和原型模板的即时设计&#xff0c;开始敏捷高效的工作。与产品经理分解用户需…

fastapi.templating与HTMLResponse

要声明一个模板对象&#xff0c;应将存储html模板的文件夹作为参数提供。在当前工作目录中&#xff0c;我们将创建一个 “templates “目录。 templates Jinja2Templates(directory“templates”) 我们现在要把这个页面的HTML代码渲染成HTMLResponse。让我们修改一下hello()函…

轻量封装WebGPU渲染系统示例<41>- 前向渲染的雾(Fog)效果(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/FogTest.ts 当前示例运行效果: 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如下&#xff1a; export class FogTest {private mRscene new Rend…

TrustZone之数据、指令和统一缓存(unified caches)

在Arm架构中,data caches是物理标记(physically tagged)的。物理地址包括该行来自哪个地址空间,如下所示: 对于NP:0x800000的缓存查找永远不会命中使用SP:0x800000标记的缓存行。这是因为NP:0x800000和SP:0x800000是不同的地址。 这也影响缓存维护操作。考虑前面图表中的示…

kubernetes详解——从入门到入土(更新中~)

k8s简介 编排工具&#xff1a;系统层面ansible、saltstackdocker容器docker compose docker swarm docker machinedocker compose&#xff1a;实现单机容器编排docker swarm&#xff1a;实现多主机整合成为一个docker machine&#xff1a;初始化新主机mesos marathonmesos …

8、Broker进一步了解

1、Broker消息分发服务以及构建ConsumeQueue和IndexFile与消息清除 前面分析如何进行刷盘&#xff0c;本章分析Broker的消息分发以及构建ConsumerQueue和IndexFile&#xff0c;两者构建是为了能够提高效率&#xff0c;减少消息查找时间以及减少网络带宽与存储空间。 ConsumeQ…

软著项目推荐 深度学习图像风格迁移 - opencv python

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习图像风格迁移 - opencv python 该项目较为新颖&#xff0c;适合作为竞赛课题…

鸿蒙4.0开发笔记之ArkTS语法基础之条件渲染和循环渲染的使用(十五)

文章目录 一、条件渲染&#xff08;if&#xff09;二、循环渲染&#xff08;ForEach&#xff09; 一、条件渲染&#xff08;if&#xff09; 1、定义 正如其他语言中的if…else…语句&#xff0c;ArkTS提供了渲染控制的能力&#xff0c;条件渲染可根据应用的不同状态&#xff0…

数独训练APP -->>穿山甲SDK接入收益·android广告接入·app变现·广告千展收益·eCPM收益(2023.11.01 -2023.11.30)

接入穿山甲SDK的app 全屏文字滚动APP 数独训练APP 广告接入示例: Android 个人开发者如何接入广告SDK&#xff0c;实现app流量变现 接入穿山甲SDK app示例&#xff1a; android 数独小游戏 经典数独休闲益智 2023 11月份收益总结 – 数独训练APP app接入上架有一段时间了&a…

SQL server 根据已有数据库创建相同的数据库

文章目录 用导出的脚本创建相同的数据库导出建表脚本再次建表 一些sql语句 用导出的脚本创建相同的数据库 导出建表脚本 首先&#xff0c;右击要导出的数据库名&#xff0c;依次选择任务-生成脚本。 简介&#xff08;第一页&#xff09;处选择下一步&#xff0c;然后来到选择…