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.mzph.cn/news/590698.shtml

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

相关文章

2024年Mac专用投屏工具AirServer 7 .27 for Mac中文版

AirServer 7 .27 for Mac中文免费激活版是一款Mac专用投屏工具,能够通过本地网络将音频、照片、视频以及支持AirPlay功能的第三方App,从 iOS 设备无线传送到 Mac 电脑的屏幕上,把Mac变成一个AirPlay终端的实用工具。 目前最新的AirServer 7.2…

Matlab技巧[绘画逻辑分析仪产生的数据]

绘画逻辑分析仪产生的数据 逻分上抓到了ADC数字信号,一共是10Bit,12MHZ的波形: 这里用并口协议已经解析出数据: 导出csv表格数据(这个数据为补码,所以要做数据转换): 现在要把这个数据绘制成波形,用Python和表格直接绘制速度太慢了,转了一圈发现MATLAB很好用,操作方法如下:…

Bag-of-Words(BoW)

Bag-of-Words(BoW)模型是一种用于自然语言处理(NLP)的基本文本表示方法。它的核心思想是将文本数据转化为一个"词袋",忽略文本中词语的顺序和语法,只关注词汇的出现与否。BoW模型通常包括以下步骤…

逗号表达式与赋值表达式

逗号表达式和赋值表达式是C语言中常用的表达式类型。它们可以用于各种目的,包括计算和评估表达式、初始化变量、为函数调用提供参数以及将值分配给变量。 逗号表达式 逗号表达式允许在单个语句中计算和评估多个表达式。逗号分隔每个表达式,并且表达式从…

力扣134. 加油站

迭代 思路: 暴力模拟迭代;假设从第 idx 个加油站开始,使用一个变量对行驶的加油站个数计数,如果最后行驶的个数为 size,则是可行的;否则,行驶过的加油站都不可行;(加快更…

TypeScript 的基础语法

书接上上文:关于vue3的知识点 和 上文 :TypeScript的安装与报错 我们来接着看TypeScript 的基础语法 TypeScript 语法 1. 类型注解 类型注解是 变量后面约定类型的语法,用来约定类型,明确提示 // 约定变量 age 的类型为 numbe…

Ubuntu Linux 入门指南:面向初学者

目录 1. Ubuntu Linux 简介 Ubuntu 的由来 Ubuntu 与其他 Linux 发行版的比较 Debian: Fedora: openSUSE: Arch Linux: Linux Mint: 第二部分:安装 Ubuntu 1. 准备安装 系统需求 创建 Ubuntu 启…

Spring Cloud Gateway + Nacos 灰度发布

前言 本文将会使用 SpringCloud Gateway 网关组件配合 Nacos 实现灰度发布&#xff08;金丝雀发布&#xff09; 环境搭建 创建子模块服务提供者 provider&#xff0c;网关模块 gateway 父项目 pom.xml 配置 <?xml version"1.0" encoding"UTF-8"?…

数据库-期末考前复习-第3章-关系数据库标准语言SQL

1、掌握SQL语言实现数据查询、定义、操纵、控制的关键字。 数据查询&#xff1a;使用SELECT关键字进行数据查询操作。数据定义&#xff1a;使用CREATE和ALTER关键字进行数据库、表、视图、索引等的定义操作。数据操纵&#xff1a;使用INSERT、DELETE和UPDATE关键字进行数据的插…

2312d,d调用中文C++库

调用方: import core.stdcpp.string; //用C的串. import std.stdio;extern(C){bool bb(ref string a); } bool cc(ref string a);void main() {string c"bb";string d"";writeln(c,d);bool acc(c);writeln(c,d);bool bbb(d);writeln(a,b); }C这边,根据需要…

阿里云服务器开放端口Oracle 1521方法教程

阿里云服务器ECS端口是在安全组设置的&#xff0c;Oracle数据库1521端口号开放是在安全组中添加规则来实现的&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器开放Oracle 1521端口方法教程&#xff1a; 阿里云服务器开放Oracle 1521端口 在阿里云服务器ECS…

微信小程序自定义步骤条效果

微信小程序自定义一个步骤条组件&#xff0c;自定义文字在下面&#xff0c;已完成和未完成和当前进度都不一样的样式&#xff0c;可点击上一步和下一步切换流程状态&#xff0c;效果如下。 这是视频效果&#xff1a; 前端实现步骤条效果 下面我们一步步实现编码&#xff0c;自定…

华为鸿蒙运行Hello World

前言&#xff1a; 从11月中旬开始通过B站帝心接触鸿蒙&#xff0c;至今一个半月左右不到&#xff0c;从小白到入坑&#xff0c;再到看官网案例&#xff0c;分析案例&#xff0c;了解技术点&#xff0c;还需要理清思路&#xff0c;再写博客&#xff0c;在决定写 &#xff1c;Har…

配置Docker私有仓库

# 打开要修改的文件 vi /etc/docker/daemon.json # 添加内容&#xff1a; "insecure-registries":["http://自己服务器的ip地址:设置的端口号"] # 重加载 systemctl daemon-reload # 重启docker systemctl restart docker在自己设定的文件夹内使用DockerCo…

仓库管理系统

基于SSM框架的仓库管理系统

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

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

PWM应用篇

一.什么是PWM 用图话&#xff0c;如下图所示&#xff1a; PWM&#xff08;脉冲宽度调制&#xff09;&#xff1a;这是一种模拟控制方式&#xff0c;可以根据载荷的变化来调制晶体管基极或MOS管栅极的偏置&#xff0c;实现晶体管或MOS管导通时间的改变&#xff0c;从而改变开关稳…

【STM32】STM32学习笔记-TIM输入捕获(17)

00. 目录 文章目录 00. 目录01. 输入捕获简介02. 频率测量03. 输入捕获通道04. 主从触发模式05. 输入捕获基本结构06. PWMI基本结构07. 其它08. 附录 01. 输入捕获简介 IC&#xff08;Input Capture&#xff09;输入捕获 输入捕获模式下&#xff0c;当通道输入引脚出现指定电平…

SpringBoot 一个注解实现数据脱敏

什么是数据脱敏 数据脱敏是指对某些敏感信息&#xff0c;例如姓名、身份证号码、手机号、固定电话、银行卡号、邮箱等个人信息&#xff0c;通过脱敏算法进行数据变形&#xff0c;以保护敏感隐私数据。 数据脱敏通常涉及以下几种主要方法&#xff1a; 替换&#xff1a; 将原始…

Redis:原理+项目实战——Redis实战1(session实现短信登录(并剖析问题))

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Redis&#xff1a;原理速成项目实战——Redis的Java客户端 &#x1f4da;订阅专栏&#xff1a;Redis速成 希望文章对你们有所帮助…