首页 > 编程语言 >【从零开始重学Java】第13天 Java网络功能

【从零开始重学Java】第13天 Java网络功能

时间:2024-01-17 18:23:26浏览次数:31  
标签:13 重学 Java Socket System 从零开始 println

前情提示

从零开始重学Java 第0天
从零开始重学Java 第1天 Java概述
从零开始重学Java 第2天 标识符和数据类型
从零开始重学Java 第3天 表达式和流程控制语句
从零开始重学Java 第4天 数组、向量和字符串
从零开始重学Java 第5天 对象和类
从零开始重学Java 第6天 异常
从零开始重学Java 第7天 高级特性
从零开始重学Java 第8_9_10天 图形界面、Swing、Applet
从零开始重学Java 第11天 数据流
从零开始重学Java 第12天 线程

Java的网络功能

概述

IP:端口 就是Socket,中文翻译“套接字”(这个翻译实在太别扭了)

网络模型

使用InetAddress

        try {
            String localHostAddress = InetAddress.getLocalHost().getHostAddress();
            System.out.println("localHostAddress = " + localHostAddress);
            InetAddress[] allByName = InetAddress.getAllByName("www.baidu.com");
            System.out.println("baidu address");
            for (InetAddress inetAddress : allByName) {
                System.out.println(inetAddress.getHostAddress());
            }
        }catch (Exception e){
            e.printStackTrace();
        }
//localHostAddress = 
//baidu address
//220.181.38.150
//220.181.38.149

统一资源定位器

URL的概念

URL的构造方法

与URL相关的异常

获取URL对象属性

读入URL数据

        try {
            URL url = new URL("https://www.baidu.com/");
            try (InputStream inputStream = url.openStream()){
                byte[] bytes = inputStream.readAllBytes();
                System.out.println(new String(bytes));
            }
        }catch (Exception e){
            e.printStackTrace();
        }

Socket接口

Socket的基本概念

Socket通信的基本步骤

Socket通信的程序设计

    public static void main(String[] args) {
        new Thread(()->server(6666)).start();
        try {
            Thread.sleep(1000);
        }catch (Exception e){
            e.printStackTrace();
        }
        client(6666);

    }

    private static void server(int port){
        try (ServerSocket socket = new ServerSocket(port)){
            System.out.println("服务端已打开端口 " + port);
            try (Socket acceptSocket = socket.accept();
                 OutputStream outputStream = acceptSocket.getOutputStream()){
                System.out.println("acceptSocket.getInetAddress() " + acceptSocket.getInetAddress());
                System.out.println("acceptSocket.getPort() " + acceptSocket.getPort());
                outputStream.write("Hello".getBytes());
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    private static void client(int port){
        try (Socket socket = new Socket("127.0.0.1",port)){
            System.out.println("客户端已成功连接端口 " + port);
            try (InputStream inputStream = socket.getInputStream()){
                System.out.println("客户端收到了 " + new String(inputStream.readAllBytes()));
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

Java编程综合实例

第十三章习题

  • Socket为什么要关闭

释放资源、通知对方连接结束、防止数据丢失(触发TCP协议中的连接终止过程)、释放端口、提高安全性

标签:13,重学,Java,Socket,System,从零开始,println
From: https://www.cnblogs.com/lazykingloveu/p/17970694

相关文章

  • 13.代理配置
    什么是代理使用代理之前 title客户端服务端交互scale200widthscale400heightautonumberparticipant客户端asclientparticipant服务端asserverclient->server:发起请求server->client:返回响应使用代理之后 scale200widthscale700h......
  • 多模块之间的循环依赖:java: Annotation processing is not supported for module cycl
    问题描述java:Annotationprocessingisnotsupportedformodulecycles.Pleaseensurethatallmodulesfromcycle[BDCloud-business,BDCloud-admin]areexcludedfromannotationprocessing  本质:BDCloud-admin模块为主启动模块,其包含了BDCloud-business模块;但在......
  • `cargo build`报错:`failed to run custom build command for libgit2-sys v0.13.2+1.4
    cargobuild报错:failedtoruncustombuildcommandforlibgit2-sysv0.13.2+1.4.21问题背景在使用cargo编译cargo-cache时出现报错:Thefollowingwarningswereemittedduringcompilation:warning:[email protected]+1.4.2:Infileincludedfromlibgit2/src/pack.......
  • Java HttpClient 实战 GET 与 POST 请求一网打尽
    使用JavaHttpClient进行HTTP请求在Java中,HttpClient是进行HTTP通信的一个强大工具。它提供了简单而灵活的API,可以轻松地发送HTTP请求并处理响应。在本篇博文中,我们将深入探讨如何使用HttpClient执行GET、POST等不同类型的HTTP请求。1.引入依赖首先,确保在项目的pom.xml文件中......
  • java代码里如何判断某个IP/域名是否可达?
    在Java中,你可以使用java.net.InetAddress类来实现ping某个IP地址是否可达。下面是一个简单的示例代码:importjava.net.InetAddress;importjava.io.IOException;publicclassPingExample{publicstaticvoidmain(String[]args){StringipAddress="你的......
  • JavaGuide 设计模式
    JavaGuide设计模式1.软件设计原则设计原则名称简单定义开闭原则对扩展开放,对修改关闭单一职责原则一个类只负责一个功能领域中的相应职责里氏替换原则所有引用基类的地方必须能透明地使用其子类的对象依赖倒置原则依赖于抽象,不能依赖于具体实现接......
  • Java Collections.frequency()方法返回集合中指定元素个数
    JavaCollections.frequency()方法具有什么功能呢?下文笔者讲述Collections.frequency()方法的功能简介说明,如下所示:Collections.frequency()方法的功能:返回一个int值,其值给指定对象在集合中出现的次数Collections.frequency()方法的语法publicstaticintfreque......
  • Java 秘钥对相关操作
    生成JKS(JavaKeyStore)文件keytool-genkeypair-keystoremercury.jks-keyalgRSA-validity180-aliasmercury参数说明keytool:这是JavaKeytool工具,用于管理密钥和证书。-genkeypair:指示Keytool生成一个密钥对(公钥和私钥)。-aliasmercury:设置密钥对的别......
  • PDF转图片-itextpdf-java源码
    提供PDF文件转图片的工具类。电子签章过程中存在着在网页上对签署文件进行预览、指定签署位置、文件签署等操作,由于图片在浏览器上的兼容性和友好性优于PDF文件,所以一般在网页上进行电子签章时,会先将PDF文件转换成图片,展示给用户。用户在页面上确定好签署位置,并进行签署时,后端服......
  • 电子签章Java后端与前端交互签名位置计算
    电子签章过程中存在着在网页上对签署文件进行预览、指定签署位置、文件签署等操作,由于图片在浏览器上的兼容性和友好性优于PDF文件,所以一般在网页上进行电子签章时,会先将PDF文件转换成图片,展示给用户。用户在页面上确定好签署位置,并进行签署时,后端服务会通过对电子印章/手写签名位......