Java---网络编程

文章目录

    • 1. 网络编程概述
    • 2. InetAddress
    • 3. 端口和协议
    • 4. Java网络API
    • 5. URL
    • 6. URLConnection类


1. 网络编程概述

 1. 计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

在这里插入图片描述

 2. 网络编程:在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换。

 3. 网络编程三要素:IP地址、端口和协议。

在这里插入图片描述

 4. 协议:IPv4协议和IPv6协议。常用命令:(1) ipconfig:查看本机IP地址。 (2) ping IP地址:检查网络是否连通。

在这里插入图片描述

2. InetAddress

 为了方便我们对IP地址的获取和操作,Java提供了一个类InetAddress供我们使用。此类表示Internet协议地址。

方法名说明
static InetAddress getByName(String host)确认主机名称的IP地址,主机名称可以是机器名称,也可以是IP地址
String getHostName()返回此IP地址的主机名
String getHostAddress()返回文本显示中的IP地址字符串
public class InetDemo {public static void main(String[] args) throws UnknownHostException {InetAddress address = InetAddress.getByName("111");String name= address.getHostName();String ip= address.getHostAddress();System.out.println("主机名:"+name);System.out.println("IP地址:"+ip);}
}

3. 端口和协议

 1. 端口:设备上应用程序的唯一标识,取值范围是0-65535。

 2. 在计算机网络中,连接和通信的规则被称为网络通信协议。

在这里插入图片描述
在这里插入图片描述

4. Java网络API

在这里插入图片描述

import java.io.*;
import java.net.*;public class Server  {public static void main(String[] args) throws IOException {//声明并初始化一个名为serverSocket的ServerSocket对象,让它监听8080端口。ServerSocket serverSocket = new ServerSocket(8080);System.out.println("Server is listening on port 8080");while (true) {Socket socket = serverSocket.accept();new ServerThread(socket).start();}}
}
class ServerThread extends Thread {private Socket socket;public ServerThread(Socket socket) {this.socket = socket;}//这是线程的执行方法。当线程启动时,它会自动调用这个方法。public void run() {try {InputStream input = socket.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(input));OutputStream output = socket.getOutputStream();PrintWriter writer = new PrintWriter(output, true);String text;while ((text = reader.readLine()) != null) {System.out.println("Server received: " + text);writer.println("Echo: " + text);}socket.close();} catch (IOException ex) {System.out.println("Server exception: " + ex.getMessage());ex.printStackTrace();}}
}
import java.io.*;
import java.net.*;public class Client {public static void main(String[] args) throws IOException {Socket socket = new Socket("localhost", 8080);System.out.println("Connected to the server");InputStream input = socket.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(input));OutputStream output = socket.getOutputStream();PrintWriter writer = new PrintWriter(output, true);writer.println("Hello Server");String response = reader.readLine();System.out.println(response);socket.close();}
}

在这里插入图片描述

5. URL

 1. URL(Uniform Resource Locator,统一资源定位器)表示互联网上某一资源的地址。

 2. URL可以由协议名、主机、端口和资源四个部分组成,其语法为:protocol://host:port/resourceName

  • protocol是协议名。
  • host是主机名。
  • port是端口。
  • resourceName是资源名。

 3. URL类常用方法如下图所示:

在这里插入图片描述

import java.io.*;
import java.net.URL;public class Demo {public static void main(String[] args) throws IOException {URL mybook=new URL("https://yiyan.baidu.com/");System.out.println("协议 protocol= "+mybook.getProtocol());System.out.println("主机 host= "+mybook.getHost());System.out.println("端口 port= "+mybook.getPort());System.out.println("文件 filename= "+mybook.getFile());System.out.println("路径 path= "+mybook.getPath());}
}

在这里插入图片描述

6. URLConnection类

 1. URLConnection代表与URL指定的数据源的动态连接,允许使用POST或PUT和其他HTTP请求方法将数据送回服务器。

 2. URLConnection常用方法:

在这里插入图片描述

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

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

相关文章

Java中利用Redis,ZooKeeper,数据库等实现分布式锁(遥遥领先)

1. 分布式锁 1.1 什么是分布式锁 在我们进行单机应用开发涉及并发同步的时候,我们往往采用synchronized或者ReentrantLock的方式来解决多线程间的代码同步问题。但是当我们的应用是在分布式集群工作的情况下,那么就需要一种更加高级的锁机制&#xff0…

音视频技术开发周刊 | 326

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 全球最强「开源版Gemini」诞生!全能多模态模型Emu2登热榜,多项任务刷新SOTA 最强的全能多模态模型来了!就在近日,智源研究院…

云计算复习提纲

第一章 大数据的概念:海量数据的规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策 大数据的特点:①数据量大,存储的数据量巨大,PB级别是常态;②多样,数…

第9章 继承和派生习题(详解)

一、选择题 1.下列表示引用的方法中, () 是正确的。已知:int m10: A.int &xm; B.int &y10; C.int &z; D.fl…

计算机网络(1)

计算机网络(1) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网(1)因特网概念解读服务常见的服务 协议网络边缘特点强调 网络核心特点强调 小程一言 我的计算机网络专栏,是自己在计算机网络…

常用环境部署(十三)——GitLab整体备份及迁移

一、GitLab备份 注意:由于我的GitLab是docker安装的,所以我的操作都是在容器内操作的,大家如果不是用docker安装的则直接执行命令就行。 1、Docker安装GitLab 链接:常用环境部署(八)——Docker安装GitLab-CSDN博客 2、GitLab备…

【LMM 005】LLaVA-Interactive:集图像聊天,分割,生成和编辑三种多模态技能于一体的Demo

论文标题:LLaVA-Interactive: An All-in-One Demo for Image Chat, Segmentation, Generation and Editing 论文作者:Wei-Ge Chen, Irina Spiridonova, Jianwei Yang, Jianfeng Gao, Chunyuan Li 作者单位:Microsoft Research, Redmond 论文原…

Spring04

一、AOP的概念 AOP 为 (Aspect Oriented Programming) 的缩写,意为:面向切面编程,底层是使用动态代理的技术实现对目标方法的增强和控制访问等功能。 其中AOP中有几个重要的概念: 1、通知:增强的逻辑,或者后期要加入的代码。 2、目…

2024校招测试工程师笔试——经典错题记录和解析

大家好,这篇文章记录几个测开方向经典的例题,并给出相应解析,欢迎给出你的看法 下列关于软件性能测试的说法中,正确的是:( ) A 性能测试的目的不是为了发现软件缺陷 B 压力测试与负载测试的目的…

【并发设计模式】聊聊Thread-Per-Message与Worker-Thread模式

在并发编程中,核心就是同步、互斥、分工。 同步是多个线程之间按照一定的顺序进行执行,比如A执行完,B在执行。而互斥是多个线程之间对于共享资源的互斥。两个侧重点不一样,同步关注的是执行顺序,互斥关注的是资源的排…

CGAL的空间排序

1、介绍 许多在CGAL中实现的几何算法都是增量的,因此它们的速度取决于插入顺序。此软件包提供了排序算法,可以大大提高此类算法的运行时间。 其基本原理是沿着空间填充曲线对对象进行排序,这样在插入顺序上,几何上接近的两个对象将…

.net8 AOT编绎-跨平台调用C#类库的新方法-函数导出

VB.NET AOT无法编绎DLL,微软的无能,正是你的机会 .net8 AOT编绎-跨平台调用C#类库的新方法-函数导出 1,C#命令行创建工程:dotnet new classlib -o CSharpDllExport 2,编写一个静态方法,并且为它打上UnmanagedCallersO…

Linux - 设置虚拟机和主机IP在同一网段(桥接)

1.查看主机ip地址等相关信息。 ipconfig -all 2.设置虚拟网络编辑器 打开虚拟网络编辑器 设置虚拟网络编辑器,设置为桥接模式。(记得以管理员方式打开VMware)。 3.修改虚拟机网卡文件 查看虚拟机ip,我们的目标是将其修改为与主机同一网段…

postman使用-04响应

文章目录 响应响应界面说明Pretty:格式化显示,以便查看Raw:不进行任何处理,显示响应数据的原始格式Preview:预览响应体,会自动换行,不会格式化(有时候是数据,有时候是页面…

什么是缓存、为什么要用缓存、缓存分类、缓存测试、缓存更新、缓存设计考虑点、缓存测试点

一、缓存 缓存是一种将数据存储在高速缓存中的技术,它可以提高应用程序的性能和响应速度。 二、 为什么要用缓存 1. 高性能(主要目的) 查询耗时,但变化少,又有很多读请求情况下,可以将查询结果放到缓存中。减少对数据库的压力&…

Java位运算及移位运算

java中能表示整数数据类型的有byte、short、char、int、long,在计算机中占用的空间使用字节描述,1个字节使用8位二进制表示。 数据类型字节数二进制位数表示范围默认值byte18-27 – 27-10char2160 – 216-1\u0000 (代表字符为空 转成int就是0)short216-…

Word 将页面方向更改为横向或纵向

文章目录 更改整个文档的方向更改部分页面的方向方法1:方法2: 参考链接 更改整个文档的方向 选择“布局”>“方向”,选择“纵向”或“横向”。 更改部分页面的方向 需要达到下图结果: 方法1: 选:中你要在横向页面…

帆软报表中定时调度中的最后一步如何增加新的处理方式

在定时调度中,到调度执行完之后,我们可能想做一些别的事情,当自带的处理方式不满足时,可以自定义自己的处理方式。 产品的处理方式一共有如下这些类型: 我们想在除了上面的处理方式之外增加自己的处理方式应该怎么做呢? 先看下效果: 涉及到两方面的改造,前端与后端。…

C++日期类的实现

前言:在类和对象比较熟悉的情况下,我们我们就可以开始制作日期表了,实现日期类所包含的知识点有构造函数,析构函数,函数重载,拷贝构造函数,运算符重载,const成员函数 1.日期类的加减…

【产品设计】信息建设三驾马车:PLM系统拆解

本篇文章将介绍PLM的基础信息、发展及模块功能等内容,让大家对PLM有一个全面、完整地了解,方便在后期的工作中能快速地使用其解决方案,希望本篇文章能对你有所帮助。 PLM系统主要实现产品模块业务,既包含产品的创意设计、样品打样…