第16章:随堂复习与企业真题(网络编程)

第16章:随堂复习与企业真题(网络编程)


一、随堂复习

1. 网络编程概述

  • 计算机网络:略
  • 网络编程的目的:直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。
  • 需要解决的三个问题:
    • 问题1:如何准确地定位网络上一台或多台主机
    • 问题2:如何定位主机上的特定的应用
    • 问题3:找到主机后,如何可靠、高效地进行数据传输

2. 要素1:IP地址

  • 使用具体的一个ip地址对应具体的一个互联网上的主机
  • IP分类:
    • 角度一:IPv4、IPv6
    • 角度二:公网地址、私网地址(或局域网)
  • 使用InetAddress类表示IP地址
    • 实例化:getByName(String host) 、getLocalHost()
    • 常用方法:getHostName() 、getHostAddress()

3. 要素2:端口号

  • 用于区分同一台主机上的不同的进程
  • 不同的进程分配不同的端口号
  • 范围:0-65535

4. 要素3:网络通信协议

  • 这里有两套参考模型
    • OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广
    • TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。
  • 在传输层中涉及到两个协议:TCP、UDP。二者的对比
    • TCP:可靠的连接(发送数据前,需要三次握手、四次挥手),进行大数据量的传输,效率低。
    • UDP:不可靠的连接(发送前,不需要确认对方是否在)、使用数据报传输(限制在64kb以内)、效率高。
  • TCP的三次握手、四次挥手(了解)

5. TCP网络编程

例题1:客户端发送内容给服务端,服务端将内容打印到控制台上。

例题2:客户端发送文件给服务端,服务端将文件保存在本地。

例题3:从客户端发送文件给服务端,服务端保存到本地。并返回“发送成功”给客户端。并关闭相应的连接。

6. UDP网络编程

简单的理解UDP的数据传输。

7. URL编程

  • Java后台:将写好的Java程序部署在Tomcat服务器。启动Tomcat服务器。

  • 前台:使用浏览器进行访问。需要使用url。(HTML+CSS+JavaScript)

  • URL的作用:定位互联网上某一资源的地址。

  • URL的格式:

http://192.168.21.107:8080/examples/abcd.jpg?name=Tom   ---> "万事万物皆对象"
应用层协议 ip地址       端口号  资源地址   参数列表
  • 使用URL实现数据的下载(了解)

二、企业真题

1. TCP协议和UDP协议的区别(华**为)

1.什么是TCP?

TCP (Transmission Control Protocol)传输控制协议

2.什么是UDP?

UDP(User Datagram Protocol)用户数据报协议

(1)TCP 面向连接(如打电话要先拨号建立连接)提供可靠的服务。可靠指:通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;
相当于:打电话,我已经确定了对面的人是我要找的那个人了,我可以把信息传输了对的人了,所以是可靠的。

UDP 是无连接的,即发送数据之前不需要建立连接,UDP 尽最大努力交付,即不保证可靠交付。例如:发送QQ信息,对方是离线状态,我只管发信息过去,不管离线的人是不是收到了。我只管我发成功了。不可靠是指:在这次发送中,有可能会丢数据包。就算是丢了,也不会再重新发送。如果是TCP:丢包时重发,对次序乱掉的分包进行顺序控制。

(2)UDP 具有较好的实时性,工作效率比 TCP 高,适用于对高速传输和实时性有较高的通信或广播通信。
解释:
实时性:在规定时间内系统的反应能力。
因为TCP需要建立连接,需要消耗时间,所以UD工作效率高,对于高速传输来说,UDP的效率更高。

与TCP相比,UDP它以更快的速度传输数据。该协议相对不太可靠。因此,用于传输音频和视频文件等数据。

(3)TCP 连接只能是一对一的,UDP 支持一对一,一对多,多对一和多对多的交互通信。
解释:打电话就是TCP协议,每次只能给一个人打电话。UDP就像是QQ发送信息,可以一对多的给别人发消息。

(4)TCP是面向字节流,把数据看成一连串无结构的字节流,UDP 是面向报文的一次交付一个完整的报文,报文不可分割,报文是 UDP 数据报处理的最小单位。

(5)TCP 和 UDP 都可以检查错误,但只有 TCP 可以纠正错误,因为它同时具有拥塞和流量控制。

(6)TCP只能进行点对点的数据传输,不支持多播和广播传输方式。

2. 简单说说TCP协议的三次握手与四次挥手机制 (*科软)

三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号并为后面的可靠性传送做准备。

三次握手刚开始时客户端处于Closed的状态,服务端主动监听某个端口,处于Listen状态,此时进行三次握手的过程:

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

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

相关文章

FL Studio(水果软件)2024最新中文版云盘下载

如今,越来越多的音乐人选择使用音乐制作软件来进行音乐的创作,一台电脑、一款软件以及一个外接MIDI就是一个小型的音乐工作站。FL Studio成了音乐界萌新的首选,目前最新的版本为FL Studio2024版本。 你可以不知道如何做音乐,但是…

Normalizing Kalman Filters for Multivariate Time Series Analysis

l l l means latent state,LGM means ‘linear Gaussian state space models’ 辅助信息 作者未提供代码

linux上 more 和 cat 区别

在Linux系统中,​more​和 ​cat​都是用于显示文本文件内容的命令,但它们之间有一些区别。 ​​cat​命令(concatenate)通常用于以原始形式显示文件的内容,并且会一次性输出整个文件的内容到终端。例如: …

【Python】 Python 中如何实现图片合并及生成长图片文件?

在 Python 中如何实现图片合并及生成长图片文件? 在 Python 中,你可以使用 PIL (Python Imaging Library) 来合并图片。以下是一个简单的示例,展示如何将多个图片文件合并成一个长图片文件: python from PIL import Image # 打开…

华为OD机试真题-万能字符单词拼写-2023年OD统一考试(C卷)

题目描述:有一个字符串数组words和一个字符串chars。 假如可以用chars中的字母拼写出words中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。 words的字符仅由 a-z 英文小写字母组成。 例如: abc chars 由 a-z 英文小写字母和 “?”组成。其中英文问号“?”表示…

cnpm 安装后无法使用怎么办?

问题的原因 cnpm 安装成功,但是却无法使用,一般分为两种情况,一种是提示无法执行命令,另一种是可以执行但是执行时报错,下面分别说明遇到这两种情况的解决方案。 解决方案 问题一:无法执行相关命令 首先…

CleanMyMac X4.16.2最新2024注册许可证

都说苹果的闪存是金子做的,这句话并非空穴来风,普遍都是256G起步,闪存没升级一个等级,价格都要增加上千元。昂贵的价格让多数消费者都只能选择低容量版本的mac。而低容量的mac是很难满足用户的需求的,伴随着时间的推移…

LZW的编码和解码

不同于哈弗曼编码针对于每个元素编码,LZW主要针对字符串的编码优化,也就是把出现频率高的字符串压缩成一个字符表示,这也是大名鼎鼎的GIF采用的压缩格式。下面我将从三个角度谈谈我的一些理解,文章主要参考了这位大佬:…

抖音短视频优化的四个问题

短视频营销无疑是当下营销方式中最热的一种没有之一,但随着各家都把精力投向短视频营销,短视频平台的短视频内容急剧增加,而不做优化的短视频可能获得的展现机会很少,而营销效果大打折扣。小马识途营销顾问分析这就像互联网兴起的…

jionlp :一款超级强大的Python 神器!轻松提取地址中的省、市、县

在日常数据处理中,如果你需要从一个完整的地址中提取出省、市、县三级地名,或者乡镇、村、社区两级详细地名,你可以使用一个第三方库来实现快速解析。在使用之前,你需要先安装这个库。 pip install jionlp -i https://pypi.douba…

SQL Sever 基础知识 - 数据筛选

SQL Sever 基础知识 - 四、数据筛选 四、筛选数据第1节 DISTINCT - 去除重复值1.1 SELECT DISTINCT 子句简介1.2 SELECT DISTINCT 示例1.2.1 DISTINCT 一列示例1.2.2 DISTINCT 多列示例 1.2.3 DISTINCT 具有 null 值示例1.2.4 DISTINCT 与 GROUP BY 对比 第2节 WHERE - 过滤查询…

jvm基本概念,运行的原理,架构图

文章目录 JVM(1) 基本概念:(2)运行过程 今天来和大家聊聊jvm, JVM (1) 基本概念: JVM 是可运行Java代码的假想计算机,包括一套字节码指令集、一组寄存器、一个栈一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作…

【智能家居】三、添加语音识别模块的串口读取功能点

语音识别模块SU-03T 串口通信线程控制代码 inputCommand.h(输入控制指令)voiceControl.c(语音控制模块指令)main.c(主函数)编译运行结果 语音识别模块SU-03T AI智能语音识别模块离线语音控制模块语音识别…

YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI

YOLOv8-DeepSort/ByteTrack-PyQt-GUI:全面解决方案,涵盖目标检测、跟踪和人体姿态估计 YOLOv8-DeepSort/ByteTrack-PyQt-GUI是一个多功能图形用户界面,旨在充分发挥YOLOv8在目标检测/跟踪和人体姿态估计/跟踪方面的能力,与图像、…

2023.11.30 关于 MyBatis 动态 SQL 的使用

目录 引言 if 标签 trim 标签 where 标签 set 标签 foreach 标签 引言 动态 sql 是 MyBatis 的强大特性之一允许你根据输入的参数动态地构建 sql 语句从而在运行时根据不同的条件生成不同的 sql 核心思想 基于提供的数据和条件,能够修改、增加、删除 sql…

二分查找思路实现

二分查找是一种很常见的查找算法,重要的是边界的处理和循环的起止条件 使用二分查找的话,首先接收的数组一定是有序的。确定边界。在头一次循环中,左边界也就是索引下标为0的位置,右边界是数组的长度-1.确定循环起止条件。当左边…

C语言面试之数组指针上篇

C语言数组是C语言中重要的数据结构之一,它用于存储一组相同类型的数据。数组在C语言中是以连续的内存空间来存储的,每个数组元素都是一个变量,占据一定的内存空间,数组元素之间是紧密相邻的。 一、数组的定义 在C语言中&#xff0…

vue常见优化手段

永远不要过早优化 why?过早优化的代价就是开发时间变长,开发成本增加,它会慢慢的让我们的代码变得不可阅读,难以维护;这些都是优化带来的代价。有句话是这样说的:命运馈赠的礼物,早已在暗中标好…

有点迷糊class和初始化参数的用法了

翻阅手册https://www.runoob.com/python3/python3-class.html Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。 如果你以前没有接触过面向对象的编程语言&…

解决因系统重装,导致QT编译器无法使用的办法

1.报错 ERROR WHILE BUILDING/DEPLOYING PROJECT QTTEXT (KIT: DESKTOP QT 5.5.1 MINGW 32BIT) WHEN EXECUTING 解决方法: 出现Error while building/deploying project Qttext (kit: Desktop Qt 5.5.1 MinGW 32bit) When executing step "qmake"可能会…