Day16——网络编程

1.网络编程

Java 提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。

1.1 InetAddress类

  1. InetAddress 类主要表示 IP 地址,其一个实例就是一个ip地址。包含两个子类:Inet4Address、Inet6Address。
  2. InetAddress 类没有提供公共的构造器,而是提供了如下几个 静态方法来获取 InetAddress 实例:
    • public static InetAddress getLocalHost()
    • public static InetAddress getByName(String host)
    • public static InetAddress getByAddress(byte[] addr)
  3. InetAddress 提供了如下几个常用的方法:
    • public String getHostAddress() :返回 IP 地址字符串(以文本表现形式)
    • public String getHostName() :获取此 IP 地址的主机名
    • public boolean isReachable(int timeout):测试是否可以达到该地址

1.2 ServerSocket类

  1. ServerSocket 类的构造方法:
    • ServerSocket(int port) :创建绑定到特定端口的服务器套接字。
  2. ServerSocket 类的常用方法:
    • Socket accept():侦听并接受到此套接字的连接。

1.3 Socket类

  1. Socket 类的常用构造方法:
    • public Socket(InetAddress address,int port):创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
    • public Socket(String host,int port):创建一个流套接字并将其连接到指定主机上的指定端口号。
  2. Socket 类的常用方法:
    • public InputStream getInputStream():返回此套接字的输入流,可以用于接收消息。
    • public OutputStream getOutputStream():返回此套接字的输出流,可以用于发送消息。
    • public InetAddress getInetAddress():此套接字连接到的远程 IP 地址;如果套接字是未连接的,则返回 null。
    • public InetAddress getLocalAddress():获取套接字绑定的本地地址。
    • public int getPort():此套接字连接到的远程端口号;如果尚未连接套接字,则返回0。
    • public int getLocalPort():返回此套接字绑定到的本地端口。如果尚未绑定套接字,则返回 -1。
    • public void close():关闭此套接字。套接字被关闭后,便不可在以后的网络连接中使用(即无法重新连接或重新绑定)。需要创建新的套接字对象。 关闭此套接字也将会关闭该套接字的 InputStream 和 OutputStream。
    • public void shutdownInput():如果在套接字上调用 shutdownInput() 后从套接字输入流读取内容,则流将返回 EOF(文件结束符)。 即不能在从此套接字的输入流中接收任何数据。
    • public void shutdownOutput():禁用此套接字的输出流。对于 TCP 套接字,任何以前写入的数据都将被发送,并且后跟 TCP 的正常连接终止序列。 如果在套接字上调用 shutdownOutput() 后写入套接字输出流,则该流将抛出 IOException。 即不能通过此套接字的输出流发送任何数据。

1.4 UDP网络编程

UDP(User Datagram Protocol,用户数据报协议):是一个无连接的传输层协议、提供面向事务的简单不可靠的信息传送服务,类似于短信。

1.5 URL编程

1.5.1 URL类

  1. URL(Uniform Resource Locator):统一资源定位符,它表示 Internet 上某一资源的地址。
  2. 通过 URL 我们可以访问 Internet 上的各种网络资源,比如最常见的 www,ftp站点。浏览器通过解析给定的 URL可以在网络上查找相应的文件或其他资源。
  3. URL 的基本结构由 5 部分组成:
    • <传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表

1.5.2 URL类构造器

  1. public URL (String spec):通过一个表示 URL 地址的字符串可以构造一个URL 对象。例如:URL url = new URL(“http://www. atguigu.com/”);
  2. public URL(URL context, String spec):通过基 URL 和相对 URL 构造一个URL 对象。例如:URL downloadUrl = new URL(url, “download.html")。
  3. public URL(String protocol, String host, String file); 例如:URL url = new URL(“http”, “www.atguigu.com”, “download. html");
  4. public URL(String protocol, String host, int port, String file); 例如: URL gamelan = new URL(“http”, “www.atguigu.com”, 80, “download.html");

1.5.3 常用方法

  1. public String getProtocol( ) 获取该 URL 的协议名
  2. public String getHost( ) 获取该 URL 的主机名
  3. public String getPort( ) 获取该 URL 的端口号
  4. public String getPath( ) 获取该 URL 的文件路径
  5. public String getFile( ) 获取该 URL 的文件名
  6. public String getQuery( ) 获取该 URL 的查询名

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

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

相关文章

自己搭建一个window系统上的MinIO系统(小白30分钟搞得版)

自己搭建一个window系统上的MinIO系统 前言实现系统说明 效果配置结果测试本地测试同一网络内的其他计算机访问 展望注参考链接 前言 有个项目使用到minio的云端存储系统&#xff0c;为了更好的理解项目&#xff0c;准备对这个“神秘的玩意”自己研究一下&#xff0c;看看到底…

【Angular开发】Angular:2023年最佳实践

Angular是一个功能强大且被广泛采用的用于构建web应用程序的框架。随着我们进入2023年&#xff0c;必须跟上最佳实践&#xff0c;以确保您的Angular项目高效、可维护和高性能。在本文中&#xff0c;我们将探讨2023年充分利用Angular的一些最佳实践&#xff0c;并提供示例。 1.…

【hacker送书第10期】AI时代系列丛书(五选一)

AI时代系列丛书 AI时代程序员开发之道✨内容简介参与方式 AI时代项目经理成长之道✨内容简介参与方式 AI时代架构师修炼之道✨内容简介参与方式 AI时代产品经理升级之道✨内容简介参与方式 AI时代Python量化交易实战✨内容简介参与方式 AI时代程序员开发之道✨ 内容简介 本书是…

vivado时序方法检查5

TIMING-14 &#xff1a; 时钟树上的 LUT 在时钟树上发现 LUT <cell_name> 。不建议在时钟路径上包含 LUT 单元。 描述 时钟路径上的 LUT 可能导致偏差过大 &#xff0c; 因为时钟必须在穿过互连结构的常规布线资源上进行布线。除偏差过大外 &#xff0c; 这些路径更…

Nmap脚本简介

什么是Nmap脚本 Nmap脚本是一种由Nmap扫描器使用的脚本语言&#xff0c;用于扫描目标网络中的主机、端口、服务等信息&#xff0c;并提供一系列自动化的测试和攻击功能。从渗透测试工程师的角度来看&#xff0c;Nmap脚本是一种非常有用的工具&#xff0c;能够帮助渗透测试工程师…

LinuxBasicsForHackers笔记 -- 进程管理

进程是一个正在运行和使用资源的程序。 Linux 内核是操作系统的内核&#xff0c;几乎控制着一切&#xff0c;在创建进程时&#xff0c;它会按顺序为每个进程分配一个唯一的进程 ID (PID)。 查看进程 ps – 用于在命令行查看哪些进程处于活动状态。单独使用 ps 命令并不能真正…

Spring基于注解存储对象

小王学习录 前言基于注解存储对象Controller (控制器存储)Service (服务存储)Repository (仓库存储)Component (组件存储)Configuration (配置存储)Bean(方法注解) 前言 上一篇文章中已经介绍了在Spring中存储Bean和取Bean的方法. 而在 Spring 中想要更简单的存储和读取对象的…

利用 Python 进行数据分析实验(七)

一、实验目的 使用Python解决问题 二、实验要求 自主编写并运行代码&#xff0c;按照模板要求撰写实验报告 三、实验步骤 操作书上第九章内容请画出如图2.png所示的图形通过编码获得fcity.jpg的手绘图像&#xff08;如beijing.jpg所示&#xff09; 四、实验结果 T2 &qu…

仿贝壳地图画圈找房功能实现(高德地图)

仿贝壳地图画圈找房功能实现&#xff08;高德地图&#xff09; 前言 在最近租房时&#xff0c;看到贝壳找房上线了一个地图画圈找房的功能&#xff0c;感觉很是新奇。接触地图开发也有很长一段时间了&#xff0c;以前大部分都是基于web pc端开发&#xff0c;所以一般遇到这种…

嵌入式板级系统设计【课设】

笔记【嵌入式板级系统设计】 前言版权笔记【嵌入式板级系统设计】资料学习面包板焊接注意焊接教程 焊接电路板基础代码GPIO 外部中断 定时中断 三合一串口 综合实验 风扇控制系统下板三合一窗口综合实验 最后 前言 2023-11-20 08:49:57 以下内容源自《【创作模板五】》 仅供学…

基于Java影视明星系统

基于Java影视明星系统 功能需求 1、明星信息管理&#xff1a;系统需要提供明星信息的录入、编辑、查询和删除功能。每个明星的信息应包括姓名、照片、简介、代表作品等。 2、粉丝互动&#xff1a;系统需要提供粉丝与明星互动的功能&#xff0c;如粉丝关注、评论、点赞等。明…

blender的weight paint模式

Blender 的权重绘制模式下的 Draw 、Blur、Average 和 Smear 工具。&#x1f60a; - Draw 工具可以在网格上绘制指定的权重值。权重值是一个从 0 到 1 的数字&#xff0c;表示顶点对顶点组的影响程度。权重值越高&#xff0c;顶点的颜色越红&#xff0c;权重值越低&#xff0c…

安装you-get(mac)

1、首先要有python环境 2、更新pip python -m pip install --upgrade pip 3、安装you-get pip install you-get;

数据库原理: 笛卡儿积

笛卡儿积&#xff08;Cartesian Product&#xff09;是集合论中的一个概念&#xff0c;也在数据库中的查询操作中经常使用。笛卡儿积是指两个集合&#xff08;或更多集合&#xff09;之间所有可能的组合。如果有两个集合A和B&#xff0c;它们的笛卡儿积记作A B&#xff0c;表示…

设备状态监测好帮手:无线温振传感器的应用

在现代工业生产中&#xff0c;设备状态监测对于确保设备的正常运行和预防故障至关重要。而无线温振传感器的出现为设备状态监测带来了全新的解决方案。本文将介绍无线温振传感器的工作原理和优势&#xff0c;并探讨其在设备状态监测中的广泛应用。 无线温振传感器是一种能够实时…

2024 年 20 款最佳免费视频转换器软件 [安全快速有效]

最佳视频转换器软件的功能和定价的回顾和比较。从顶级付费和免费在线视频转换器工具列表中选择&#xff0c;可以快速轻松地转换任何视频&#xff1a; 什么是视频转换器&#xff1f; 视频转换工具允许您将视频从一种格式转换为另一种格式。第一个商业上成功的视频格式是 Quad&…

【数据库】基于时间戳的并发访问控制,乐观模式,时间戳替代形式及存在的问题,与封锁模式的对比

使用时间戳的并发控制 ​专栏内容&#xff1a; 手写数据库toadb 本专栏主要介绍如何从零开发&#xff0c;开发的步骤&#xff0c;以及开发过程中的涉及的原理&#xff0c;遇到的问题等&#xff0c;让大家能跟上并且可以一起开发&#xff0c;让每个需要的人成为参与者。 本专栏会…

webworker测试示例

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Web Worker</title> </head> <body><script type"app/worker" id"worker">//注意必须指定<script>…

虚拟化之Stage2地址翻译

目录 1、第二阶段翻译是什么? 2、VMIDs 3、VMID 与 ASID 的交互 4、属性合并和覆盖