零基础学Java第二十三天之网络编程Ⅱ

1. InetAddress类

用来表示主机的信息

练习:

C:\Windows\system32\drivers\etc\ hosts

一个主机可以放多个个人网站

www.baidu.com/14.215.177.37

www.baidu.com/14.215.177.38

www.taobao.com/183.61.241.252

www.taobao.com/121.14.89.253

2. Socket

3. TCP编程

API:Socket,ServerSocket

客户端(发送一个请求) 服务端(接收到这个请求,给予响应)

*案例驱动学习:*

3.1. 简单的TCP通信

3.1.1. 编写服务端程序

3.1.2. 编写客户端程序

3.1.3. 客户端向服务端发送请求信息,服务端成功接收

3.1.4. 服务端向客户端发送响应信息,客户端成功接收

3.2. 升级服务端,使其处理多个客户端请求

3.3. 继续优化服务端,让多个客户端的请求无需排队

3.4. 关闭资源-提取工具类

4. TCP案例

任务:

1.基本操作

2.传递文件

3.一对一聊天

4.优化一对一聊天

5. TCP三次握手 和 四次挥手

三次握手·
在这里插入图片描述
四次握手

在这里插入图片描述

6. UDP编程

1.简介

UDP(User Datagram Protocol)用户数据报包协议,UDP和TCP位于同一层-传输层,但它对于数据包的顺序错误或重发没有TCP可靠;UDP是一种面向无连接的通信协议。UDP向应用程序提供一种发送封装的原始IP数据报的方法,并且发送时无需建立连接,不保证可靠数据的传输

UDP — 发短信

TCP — 打电话

*案例:*

6.1. 简单的UDP通信

6.2. 可以一对一随便聊,而且读写分离

2.TCP VS UDP (学习后自行比对)

TCP UDP

是否连接 面向连接 无面向连接

传输可靠性 可靠 不可靠

应用场合 传输大量数据 少量数据

速度 慢 快

3.所需学习类

DatagramPacket —此类表示数据报包

DatagramSocket —此类用来发送和接受数据报包的套接字

SocketAddress getLocalSocketAddress() 返回此套接字绑定的端点的地 址,如果尚未绑定则返回 null。

Void send(DatagramPacket p) 从此套接字发送数据报包。

Void receive(DatagramPacket p) 从此套接字接收数据报包。

MSITStore:C:\Users\apple\Desktop\JDK1.5API_CN(全).CHM::/java/net/…/…/java/net/DatagramPacket.html) p) 从此套接字接收数据报包。

SocketAddress —抽象类,IP+端口号

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

细粒度图像分类论文(AAM模型方法)阅读笔记

细粒度图像分类论文阅读笔记 摘要Abstract1. 用于细粒度图像分类的聚合注意力模块1.1 文献摘要1.2 研究背景1.3 本文创新点1.4 计算机视觉中的注意力机制1.5 模型方法1.5.1 聚合注意力模块1.5.2 通道注意力模块通道注意力代码实现 1.5.3 空间注意力模块空间注意力代码实现 1.5.…

Superset,基于浏览器的开源BI工具

BI工具是数据分析的得力武器,目前市场上有很多BI软件,众所周知的有Tableau、PowerBI、Qlikview、帆软等,其中大部分是收费软件或者部分功能收费。这些工具一通百通,用好一个就够了,重要的是分析思维。 我一直用的Tabl…

【数据结构/C语言】深入理解 双向链表

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:数据结构与算法 在阅读本篇文章之前,您可能需要用到这篇关于单链表详细介绍的文章 【数据结构/C语言】深入理解 单链表…

python内置函数map/filter/reduce详解

在Python中,map(), filter(), 和 reduce() 是内置的高级函数(实际是class),用于处理可迭代对象(如列表、元组等)的元素。这些函数通常与lambda函数一起使用,以简洁地表达常见的操作。下面我将分别解释这三个函数。 1. …

echarts-地图

使用地图的三种的方式: 注册地图(用json或svg,注册为地图),然后使用map地图使用geo坐标系,地图注册后不是直接使用,而是注册为坐标系。直接使用百度地图、高德地图,使用百度地图或高德地图作为坐标系。 用json或svg注…

Selenium 高频面试题及答案

1、什么是 Selenium?它用于做什么? Selenium 是一个用于自动化测试的开源框架。它提供了多种工具和库,用于模拟用户在不同浏览器和操作系统上的行为,并且可用于测试网页应用程序。 2、Selenium WebDriver 和 Selenium IDE 有何区…

【机器学习300问】100、怎么理解卷积神经网络CNN中的池化操作?

一、什么是池化? 卷积神经网络(CNN)中的池化(Pooling)操作是一种下采样技术,其目的是减少数据的空间维度(宽度和高度),同时保持最重要的特征并降低计算复杂度。池化操作不…

JavaWeb_Web——Maven

介绍: Maven是Apache公司发行的,一个Java项目管理和构建工具 作用: 1.方便的依赖管理 2.统一的项目结构 3.标准的项目构建流程 模型: Maven通过项目对象模型(POM)和依赖管理模型(Dependency)管理依赖(jar包),如果新添…

新闻稿海外媒体投稿,除了美联社发稿(AP)和彭博社宣发(Bloomberg),还有哪些优质的国外媒体平台可以选择

发布高质量的新闻稿到海外媒体,除了美联社发稿(AP)和彭博社发稿(Bloomberg),还有许多其他优质的媒体平台可以选择。以下是一些受欢迎和高效的海外媒体发布平台: 路透社 (Reuters) 路透社是全球最…

HILL密码

一:简介 Hill密码又称希尔密码是运用基本矩阵论原理的替换密码,属于多表代换密码的一种,由L e s t e r S . H i l l Lester S. HillLesterS.Hill在1929年发明。 二:原理 1.对于每一个字母,我们将其转化为对应的数字&am…

[Android]联系人-删除修改

界面显示 添加按钮点击,holder.imgDelete.setlog();具体代码 public MyViewHolder onCreateViewHolder(NonNull ViewGroup parent, int viewType) {//映射布局文件,生成相应的组件View v LayoutInflater.from(parent.getContext()).inflate(R.layout.d…

[ C++ ] 类和对象( 中 ) 2

目录 前置和后置重载 运算符重载和函数重载 流插入流提取的重载 全局函数访问类私有变量 友员 const成员 取地址及const取地址操作符重载 前置和后置重载 运算符重载和函数重载 流插入流提取的重载 重载成成员函数会出现顺序不同的情况(函数重载形参顺序必须相…

渗透工具CobaltStrike工具的下载和安装

一、CobalStrike简介 Cobalt Strike(简称为CS)是一款基于java的渗透测试工具,专业的团队作战的渗透测试工具。CS使用了C/S架构,它分为客户端(Client)和服务端(Server),服务端只要一个,客户端可有多个,多人连接服务端后…

AbMole - 肿瘤发展与免疫器官的“舞蹈”:一场细胞层面的时间赛跑

在生物医学领域,肿瘤与免疫系统之间的相互作用一直是研究的热点话题。肿瘤细胞不是孤立存在的,它们与宿主的免疫系统进行着一场复杂的“舞蹈”。 最近,一项发表在《Molecular & Cellular Proteomics》杂志上的研究,为我们揭开…

<el-table>根据后端返回数据决定合并单元格的数量(521特别版)

文章目录 一、需求说明二、用到的方法三、代码(只展示了本文章重点代码) 一、需求说明 💝仅合并第一列,其余为固定列 二、用到的方法 💌合并单元格可以采用三种方法 💕1. 手写表格 简单 但没有饿了么写…

使用bash shell来测试网络连接或通信 _ 统信 _ 麒麟 _ 中科方德

原文链接:使用bash shell来测试网络连接或通信 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天我们将讨论如何在国产操作系统统信UOS、麒麟KOS以及中科方德上使用bash shell的内置特性/dev/tcp来测试网络连接或进行简单的网络通信。这种方法不…

小白入职 必要熟悉 Git / tortoiseGit 工具

1.安装Git 1.1 了解Git Git是分布式版本控制系统,没有中央服务器的每个人的电脑就是一个完整的版本库,工作时无需联网可多人协作,只需把各自的修改推送给对方,就可以互相看到对方的修改了 分布式版本控制工具管理方式&#xff…

Git Large File Storage (LFS) 的安装与使用

Git Large File Storage [LFS] 的安装与使用 1. An open source Git extension for versioning large files2. Installing on Linux using packagecloud3. Getting Started4. Error: Failed to call git rev-parse --git-dir: exit status 128References 1. An open source Git…

requests_html使用介绍

文章目录 一、requests_html 基本介绍二、requests_html 基本使用三、发送带有参数的请求四、图片抓取实战案例 一、requests_html 基本介绍 A、装库: pip install requests_html B、介绍: requests 和 requests_html 是同一个作者 二、requests_html 基本使用 A、导包: fro…

具身人工智能:人工智能机器人如何感知世界

什么是具身人工智能 虽然近年来机器人在智能城市、工厂和家庭中大量出现,但我们大部分时间都在与由传统手工算法控制的机器人互动。这些机器人的目标很狭隘,很少从周围环境中学习。相比之下,能够与物理环境互动并从中学习的人工智能 (AI) 代理(机器人、虚拟助手或其他智能系…