Java中级
文章平均质量分 91
youyouwuxin1234
博主:忧忧吾心
学历:2017.09-2019.07 硕士 - 武汉大学 软件工程
2013.08-2017.06 本科 - 郑州大学 计算机科学与技术
工作:2019.07.02-2021.11.16,在美的集团IT部门国际事业部,任职软件开发工程师
2021.11.22-2021.12.31,在新华三大数据有限公司从事软件研发
2022.01.01-至今,在紫光集团旗下紫光云技术有限公司从事中间件软件研发工作
其他:代表公司参加过2019年杭州阿里巴巴云栖大会
兴趣:爱生活、爱学习、爱运动、爱旅行、爱美食。
展开
-
551、Elasticsearch详细入门教程系列 -【分布式全文搜索引擎 Elasticsearch(二)】 2023.04.04
这是因为ES在保存文档数据时,会将数据进行分词、拆解操作,并将拆解后的数据保存到倒排索引中,这样即使使用文字的一部分(小米可以查询到、小也可以查询到)也能查询到数据,这种方式就称为 全文检索。在ES中创建一个索引,就相当于在mysql中创建了一个数据库,而mysql中的数据库肯定是不能重复的,也即ES中的索引也不能重复,所以这是一个幂等性操作,需要发送PUT请求(如果重复发送PUT请求、重复添加索引,会返回错误信息),这里不能发送POST请求。创建数据库表需要设置字段名称,类型,长度,约束等;原创 2023-04-04 17:51:13 · 672 阅读 · 1 评论 -
549、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ(三)】 2023.02.28
消息生产者就是把生产者 DefaultMQProducer 对象的生命周期分成构造函数、init、destroy 三个方法,构造函数中将生产者组名、NameServer 地址作为变量由 Spring 容器在配置时提供,init 方法中实例化 DefaultMQProducer 对象、设置 NameServer 地址、初始化生产者对象,destroy 方法用于生产者对象销毁时清理资源。消息消费者同消息生产者配置类似,多了一个消息监听器对象的定义和绑定。原创 2023-02-28 17:12:50 · 377 阅读 · 0 评论 -
548、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ (二)】 2023.02.28
首先启动 Name Server,先确保你的机器中已经安装了与 RocketMQ 相匹配的 JDK ,并设置了环境变量 JAVA_HOME ,然后在 RocketMQ 的安装目录下执行 bin 目录下的 mqnamesrv ,默认会将该命令的执行情况输出到当前目录的 nohup.out 文件,最后跟踪日志文件查看 Name Server 的实际运行情况。该类构造函数入参 consumerGroup 是消息消费者组的名字,需要保证该名字的唯一性。send 方法是同步调用,只要不抛异常就标识成功。原创 2023-02-28 17:04:00 · 540 阅读 · 0 评论 -
547、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ(一)】 2023.01.30
消费消息时通过 Consumer Group 实现了将消息分发到多个消费者服务器实例,比如某个 Topic 有9条消息,其中一个 Consumer Group 有3个实例(3个进程或3台机器),那么每个实例将均摊3条消息,这也意味着我们可以很方便的通过加机器来实现水平扩展。这种方式优点是消息丢失的非常少,且消息实时性不会受影响,Master 宕机后消费者可以继续从 Slave 消费,中间的过程对用户应用程序透明,不需要人工干预,性能同多 Master 方式几乎一样。消息(Message)就是要传输的信息。原创 2023-01-30 18:10:00 · 519 阅读 · 0 评论 -
546、Zookeeper详细入门教程系列 -【Zookeeper内部原理】 2022.11.06
有关zookeeper的内容还远不止这些,这篇更多的是介绍一些zookeeper的概念,少许客户端的命令操作就每放上来了,今天我们知道zookeeper的存储节点和监听机制,就可以实现很多功能。目前阶段了解这些就够了,有机会再深入的话,会写后续的文章来介绍。原创 2022-11-06 12:52:39 · 6348 阅读 · 0 评论 -
545、Zookeeper详细入门教程系列 -【什么是Zookeeper】 2022.11.06
在我的印象中,zookeeper是可以作为注册中心来存在的,之前的微服务架构更多的是采用Dubbo+zookeeper来搭配着使用的,因此,zookeeper它是主要服务于分布式系统。而分布式系统的特点就是会有多个节点存在,实时感知每个节点的状态,管理每个节点就变得尤为重要。而zookeeper的出现就解决了这个问题。原创 2022-11-06 12:44:30 · 277 阅读 · 0 评论 -
544、RabbitMQ详细入门教程系列 -【手动消费确认】 2022.09.05
RabbitMQ(四) --消费者Consumer一文中详细讲解了MQ消息消费的相关问题,在SpringAMQP中基本都会选择针对Connetion配置队列的监听器进行消息消费。配置默认的监听实例类SimpleMessageListenerContainer中对于消息消费的确认默认为autoAck,接下来本文将围绕手动ACK讲述。原创 2022-09-05 14:24:10 · 1216 阅读 · 0 评论 -
543、RabbitMQ详细入门教程系列 -【Confirm与Mandatory】 2022.09.05
RabbitMQ原生系列文章RbbitMQ(五) – 100%消息投递消费中详细介绍过这两个操作Confirm:消息是否投递到Exchange中,具备两个回调函数,通过不同的回调函数判断是否成功。也就是说不管客户端是否将消息成功投递到Exchange都会触发这个监听回调Mandatory:消息是否投递到Queue中,当消息到达Exchange后因为内部错误、路由错误等原因导致消息未到达Queue都会触发该回调信息。回调的参数中就包括了丢失的消息。原创 2022-09-05 14:17:48 · 359 阅读 · 0 评论 -
542、RabbitMQ详细入门教程系列 -【延迟队列实现】 2022.09.05
前面将RabbitMQ时提到过延迟队列这个概念,延迟队列经典应用场景莫过于订单超时未支付自动关闭。想要使用延时队列实现该功能首先需要了解RabbitMQ以下两个特性:队列消息自动删除(TTL)死信队列(dead-letter-exchange)原创 2022-09-05 14:10:31 · 513 阅读 · 0 评论 -
541、RabbitMQ详细入门教程系列 -【Jackson2JsonMessageConvert】 2022.09.05
RabbitMQ系列文章讲解使用过程中重要知识点,示例都是采用原生Java客户端完成。实际开发过程中大部分使用者都是与Spring进行集成,通过SpringAMQP运用RabbitMQ。接下来几篇文章将会从用法、源码角度讲解SpringAMQP生产级别应用。原创 2022-09-05 14:02:14 · 1634 阅读 · 0 评论 -
540、RabbitMQ详细入门教程系列 -【100%消息投递消费(二)】 2022.08.31
队列持久化 + 队列消息持久化 = 完整持久化,持久化对RabbitMQ应用的性能是一种负担,可以根据数据类型进行范围数据持久化。如订单数据、支付数据等等较为重要的数据可以采用持久化的操作尽量避免消息丢失。...原创 2022-08-31 11:36:42 · 440 阅读 · 0 评论 -
539、RabbitMQ详细入门教程系列 -【100%消息投递消费(一)】 2022.08.31
生产者生产消息到消费者消息消费,中间需要生产者将消息发送到交换器,再由交换器路由到队列存储,然后消费者进行消息消费。消费者将消息发送到交换器因为RabbitMQ内部原因丢失消息交换器将消息路由到队列,因为队列不存在等因素导致消息丢失队列中存储的消息在消费者未消费时RabbitMQ服务宕机导致消息丢失消费者消费消息时消费者宕机未处理完消息导致消息丢失针对上述情况,本文将根据每个节点讲述如何操作确保消息投递的可靠性,同时在保障可靠性的情况下可能会引发系列如消息重复等问题,也是本文将会涉及到的重点。...原创 2022-08-31 11:28:10 · 273 阅读 · 0 评论 -
538、RabbitMQ详细入门教程系列 -【消费者Consumer(二)】 2022.08.31
第一篇文章中有一个命令是Basic.Ack用于客户端向服务端反馈确认消息已经正常消费,当接收到命令后RabbityMQ服务端才会删除消息,从消费者客户端确保消息不会丢失。程序在消费消息过程中抛出异常,或者是消息需要重复消费,这时候就可以将消费的消息拒绝确认。拒绝确认的消息有两种去处,删除、放回队列,通过参数requeue控制,拒绝确认的消息放回队列时会放置在队列首位,拒绝消息不放回队列可以搭配死信队列使用。消息消费RabbitMQ采取的策略就是轮询机制,将每个消息发送给唯一的消费者。...原创 2022-08-31 11:19:09 · 1124 阅读 · 0 评论 -
537、RabbitMQ详细入门教程系列 -【消费者Consumer(一)】 2022.08.31
经过前面三篇文章的学习,对于RabbitMQ中间件应该处于拨开云雾见青天阶段。本文将趁热打铁,完善RabbitMQ基础应用最后一个消费版块。当然文中会持续深入讲解有关消息分发、消费端确认等中阶特性。...原创 2022-08-31 11:12:36 · 315 阅读 · 0 评论 -
536、RabbitMQ详细入门教程系列 -【消息与队列进阶 RabbitMQ(二)】 2022.07.29
设置优先级队列操作在队列实例化时通过参数map实现,前面一直展示代码时queueDeclare()第五个参数都设置为null,其实该参数为Map集合,表示可以通过key-value的形式设置队列的其它属性。前面讲到单消息自动过期TTL策略实现使用BasicProperties类属性expiration即可,同时也说到了队列积压消息最大数量限制在队列实例化时依赖x-max-length属性实现,采用默认策略drop-head会删除头部消息。稍安勿躁,若实现消息优先级则必须设置队列为优先级队列。...原创 2022-07-29 18:23:07 · 634 阅读 · 0 评论 -
535、RabbitMQ详细入门教程系列 -【消息与队列进阶 RabbitMQ(一)】 2022.07.29
RabbitMQ(一)–初识RabbitMQ通过AMQP协议触摸RabbitMQ整体结构设计[RabbitMQ(二)–交换器与队列API探索]juejin.cn/post/684490…)完成RabbitMQ服务端结构基础学习RabbitMQ(三)–消息与队列进阶本文将会是RabbitMQ基础篇最倒数第二篇,同时也是进阶RabbitMQ第一篇文章。内容将会由基础消息生产衍生到TTL、Priority、MaxLength、DeadLetter等中阶操作。...原创 2022-07-29 18:03:02 · 391 阅读 · 0 评论 -
534、RabbitMQ详细入门教程系列 -【交换器与队列API探索 RabbitMQ(二)】 2022.06.22
第一篇文章RabbitMQ(一) – 初识RabbitMQ中基于AMQP协议对RabbitMQ整体进行了简介,旨在帮助阅读本系列文章的朋友建立初步的概念。文中最后部分使用到的客户端操作API并未深入的进行学习理解,本文将从RabbbitMQ应用服务部分即Broker所包含的交换器与队列两方面深入学习。为什么要在生产者与队列之间提出交换器概念?试想如果生产者与队列直接耦合,当生产者客户端需要将一条消息发送至多个队列,那就需要多次操作。......原创 2022-06-21 15:14:54 · 128 阅读 · 0 评论 -
533、RabbitMQ详细入门教程系列 -【初识RabbitMQ(一)】 2022.06.21
RabbitMQ队列基于AMQP协议使用Erlang语言开发实现,支持多客户端类型如Java、Ruby、Go、PHP等。其余比较流行的消息队列中间件,相对的还有RocketMQ、ActiveMQ、Kafka等等。后续需要测试RabbitMQ,如果没有安装服务请移步RabbitMQ服务安装。MQ总结而言最大的三个特点就是异步、削峰、解耦,如下图所示。其余复杂的概念就不照本宣科抄袭了,反正写在这里也是废话。最简单的概括就是存储数据的容器,与MySQL数据库、Redis数据库等类似,区别在于自身实现特点决定了应用原创 2022-06-21 14:53:26 · 187 阅读 · 0 评论 -
386、Java中级41 -【Spring Boot - Redis】 2020.09.28
0、目录1、Redis2、运行 Redis 服务器3、先运行,看到效果,再学习4、pom.xml5、application.properties6、Application7、RedisConfig.java8、Page4Navigator9、CategoryService10、CategoryServiceImpl11、CategoryController12、参考链接1、RedisRedis 是一套 key-value 高性能数据库。关于 Redis 如何安装,运用有专门的教程,在这里就不展开了。原创 2020-09-28 18:10:49 · 129 阅读 · 0 评论 -
385、Java中级40 -【Spring Boot - JSON】 2020.09.27
0、目录1、 本知识点效果2、基于前面的知识点3、Category4、CategoryController5、submit.html6、getOne.html7、getMany.html8、参考链接1、 本知识点效果本知识点效果有三个,分别是以json方式:提交,获取单个和获取多个提交http://localhost:8080/submit.html获取单个http://localhost:8080/getOne.html获取多个http://localhost:8080/getM原创 2020-09-27 17:57:23 · 67 阅读 · 0 评论 -
384、Java中级39 -【Spring Boot - Restful】 2020.09.25
0、目录1、 Restful 风格是什么2、listCategory.jsp3、editCategory.jsp4、CategoryController5、参考链接1、 Restful 风格是什么大家在做Web开发的过程中,method常用的值是get和post. 可事实上,method值还可以是put和delete等等其他值。既然method值如此丰富,那么就可以考虑使用同一个url,但是约定不同的method来实施不同的业务,这就是Restful的基本考虑。CRUD是最常见的操作,在使用Rest原创 2020-09-25 17:39:02 · 75 阅读 · 0 评论 -
383、Java中级38 -【Spring Boot - 上传文件】 2020.09.25
0、目录1、 uploadPage.jsp2、UploadController.java3、application.properties4、测试5、参考链接1、 uploadPage.jsp在jsp目录下新建uploadPage.jsp,需要几点:method=“post” 是必须的enctype=“multipart/form-data” 是必须的,表示提交二进制文件name=“file” 是必须的,和后续服务端对应accept=“image/*” 表示只选择图片<%@ page原创 2020-09-25 17:20:55 · 114 阅读 · 0 评论 -
382、Java中级37 -【Spring Boot - JPA条件查询】 2020.09.24
0、目录1、JPA 条件查询方式2、实现原理3、条件查询规范4、参考链接1、JPA 条件查询方式JPA 条件查询方式很有意思,是不需要写 SQL 语句的,只需要在 dao 接口里按照规范的命名定义对应的方法名,及可达到查询相应字段的效果了。在如下代码里做了如下事情:首先通过 @Before 把 Category表里所有数据都删除了,并新增了10条。然后 test1() 查询所有数据,看看新增的10条数据。接着,test2() 通过自定义的接口方法 findByName,根据name 查询分类表原创 2020-09-24 18:20:44 · 135 阅读 · 0 评论 -
381、Java中级36 -【Spring Boot - CRUD+分页(SpringBoot SQLite)】 2020.09.23
0、目录1、SQLite 介绍2、先运行,看到效果,再学习3、SQLite 方言一堆4、application.properties5、pom.xml6、重启运行7、参考链接1、SQLite 介绍SQLite 是一种数据库,它是跑在 JVM里面的,所以不需要像 mysql 那样得独立安装配置,而是直接拿来就用。。。本知识点就会把对mysql 的依赖,建立在 sqlite 上,这样大家跑起来就不用费神地安装配置 mysql 数据了啦2、先运行,看到效果,再学习老规矩,先下载右上角的可运行项目,配置运原创 2020-09-23 18:03:51 · 182 阅读 · 0 评论 -
380、Java中级35 -【Spring Boot - CRUD+分页(SpringBoot Mybatis)】 2020.09.23
0、目录1、Mybatis CRUD和分页2、先运行,看到效果,再学习3、pom.xml4、PageHelperConfig5、CategoryMapper6、CategoryController7、listCategory.jsp8、editCategory.jsp9、重启测试访问10、参考链接1、Mybatis CRUD和分页这里使用Mybatis来做一个完整的CRUD和分页。 其中分页使用Mybatis 里讲解的PageHelper插件。2、先运行,看到效果,再学习老规矩,先下载右上角的可运行原创 2020-09-23 17:57:00 · 97 阅读 · 0 评论 -
379、Java中级34 -【Spring Boot - CRUD+分页(SpringBoot JPA)】 2020.09.21
0、目录1、CRUD和分页2、先运行,看到效果,再学习3、CategoryController4、listCategory.jsp5、editCategory.jsp6、重启测试7、参考链接1、CRUD和分页在 JPA 基本用法教程中 学习了JPA的基本运用,可是最后呢,总归还是要搞 CRUD和分页的。 并且借助CRUD和分页对JPA 的常用手法做一个学习。2、先运行,看到效果,再学习老规矩,先下载右上角的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。访问测试地址:原创 2020-09-21 18:07:54 · 103 阅读 · 0 评论 -
378、Java中级33 -【Spring Boot - Mybatis-xml注解方式】 2020.09.18
0、目录1、xml方式2、先运行,看到效果,再学习3、模仿和排错4、CategoryMapper5、Category.xml6、application.properties7、重启后测试8、参考链接1、xml方式Mybatis-注解方式 教程用的是 mybatis 注解方式,可是 mapper 加xml方式也很流行,所以本教程讲 xml 方式怎么做2、先运行,看到效果,再学习老规矩,先下载右上角的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。访问地址:http:/原创 2020-09-18 18:27:10 · 78 阅读 · 0 评论 -
377、Java中级32 -【Spring Boot - Mybatis注解方式】 2020.09.17
0、目录1、关于Mybatis2、创建数据库3、创建表4、准备数据5、先运行,看到效果,再学习6、模仿和排错7、application.properties8、pom.xml9、Category10、CategoryMapper11、CategoryController12、listCategory.jsp13、重启测试14、参考链接1、关于MybatisMybatis 是用来进行数据库操作的框架,如果没有相关知识最好学习一下先: Mybatis 系列教材2、创建数据库创建数据库,名称是 ho原创 2020-09-17 18:27:58 · 102 阅读 · 0 评论 -
376、Java中级31 -【Spring Boot - JPA】 2020.09.16
0、目录1、 JPA概念2、创建数据库3、创建表4、准备数据5、先运行,看到效果,再学习6、模仿和排错7、application.properties8、pom.xml9、Category10、CategoryDAO11、CategoryController12、listCategory.jsp13、重启测试14、参考链接1、 JPA概念JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库。真正干活的可能是Hibernate,TopLink等等原创 2020-09-16 18:21:20 · 151 阅读 · 0 评论 -
375、Java中级30 -【Spring Boot - 导入项目idea】 2020.09.15
0、目录1、现成项目2、下载3、导入4、等待5、启动6、参考链接1、现成项目有时候会拿到别人现成的 springboot 项目,而不是从头自己做一个。 这个时候,就需要用导入的方式来 import 这么一个项目了。本教程讲解如何用 idea 来导入。2、下载首先下载右上角的 springboot.rar,这是一个非常简单的 springboot 项目。3、导入IDEA 导入Springboot 项目办法:菜单->File->New->Project From Existi原创 2020-09-15 15:30:49 · 150 阅读 · 0 评论 -
374、Java中级29 -【Spring Boot - 导入项目eclipse】 2020.09.15
0、目录1、现成项目2、下载3、导入4、等待5、启动6、参考链接1、现成项目有时候会拿到别人现成的 springboot 项目,而不是从头自己做一个。 这个时候,就需要用导入的方式来 import 这么一个项目了。本教程讲解如何用 eclipse 来导入。2、下载首先下载右上角的 springboot.rar,这是一个非常简单的 springboot 项目。3、导入Eclipse 导入Springboot 项目办法:菜单->File->Import->Maven->原创 2020-09-15 14:59:17 · 132 阅读 · 0 评论 -
373、Java中级28 -【Spring Boot - yml 格式】 2020.09.15
0、目录1、yml 格式2、同样内容,不同写法3、application.yml4、排斥性5、参考链接1、yml 格式现在大家发现,在springboot里还是要用到配置文件的。 除了使用.properties外,springboot还支持 yml格式。个人觉得yml格式的可读性和…properties比起来差不多,有时候还没有不如properties 看起来那么规整。但是考虑到很多springboot项目会使用yml格式,还是简单讲讲,主要目的还是为了读懂其他人的项目。2、同样内容,不同写法如原创 2020-09-15 14:13:25 · 97 阅读 · 0 评论 -
372、Java中级27 -【Spring Boot - 热部署】 2020.09.11
0、目录1、必须重启2、pom.xml3、重启测试4、参考链接1、必须重启目前的Springboot,当发生了任何修改之后,必须关闭后再启动Application类才能够生效,显得略微麻烦。 Springboot提供了热部署的方式,当发现任何类发生了改变,马上通过JVM类加载的方式,加载最新的类到虚拟机中。 这样就不需要重新启动也能看到修改后的效果了2、pom.xml做法很简单,在pom.xml中新增加一个依赖和一个插件就行了。2.1依赖:<dependency> <g原创 2020-09-11 18:20:07 · 83 阅读 · 0 评论 -
371、Java中级26 -【Spring Boot - 部署方式war方式】 2020.08.27
0、目录1、部署方式2、可运行项目3、Application4、pom.xml5、创建war包6、重命名 war 包,然后部署7、启动并测试8、参考链接1、部署方式Springboot 和我们之前学习的web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢?通常来说,Springboot 部署会采用两种方式:全部打包成一个jar,或者打包成一个war。本知识点讲解 war 的方式。2、可运行项目开发过程在前面的知识点讲解过了,这里就不表了,首先在右上角下载可运行项目。下载原创 2020-08-27 00:20:25 · 88 阅读 · 0 评论 -
370、Java中级25 -【Spring Boot】 2020.08.27
0、目录1、Spring Boot2、部署方式3、可运行项目4、打包成jar5、运行该jar6、参考链接1、Spring Boot在学习SSM(H)的过程中,需要做大量的配置工作,其实很多配置行为本身只是手段,并不是目的。 基于这个考虑,把该简化的简化,该省略的省略,开发人员只用关心提供业务功能就行了,这就是 SpringBoot。换言之,SpringBoot可以简单地看成简化了的、按照约定开发的SSM(H)。 开发速度大大提升。 可是呢,最好还是有 SSM(H)的基础,否则其中用到了Spring M原创 2020-08-27 00:12:44 · 95 阅读 · 0 评论 -
369、Java中级24 -【Spring】 2020.08.26
0、目录1、Spring1、SpringSpring是一个基于IOC和AOP的结构J2EE系统的框架IOC 反转控制 是Spring的基础,Inversion Of Control简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可。必读: 基于框架的程序要成功运行,对于JAR包的版本,配置文件的正确性有着苛刻的要求,任何一个地方出错了,都会原创 2020-08-26 23:58:58 · 137 阅读 · 0 评论 -
368、Java中级23 -【Tomcat 】 2020.08.26
0、目录1、Tomcat2、不使用tomcat访问html3、使用tomcat后,访问html4、如何启动tomcat5、如何部署网页6、8080是什么鬼?7、参考链接1、TomcatTomcat是常见的免费的web服务器.Tomcat 这个名字的来历,Tomcat是一种野外的猫科动物,不依赖人类,独立生活。 Tomcat的作者,取这个名字的初衷是希望,这一款服务器可以自力更生,自给自足,像Tomcat这样一种野生动物一般,不依赖其他插件,而可以独立达到提供web 服务的效果。2、不使用tomcat原创 2020-08-26 10:33:28 · 206 阅读 · 0 评论 -
367、Java中级22 -【网络编程 - 多线程聊天】 2020.07.31
0、目录1、多线程聊天2、同时收发消息3、参考链接1、多线程聊天如果使用单线程开发Socket应用,那么同一时间,要么收消息,要么发消息,不能同时进行。为了实现同时收发消息,就需要用到多线程2、同时收发消息在练习-服务端和客户端互聊 中,只能一人说一句,说了之后,必须等待另一个人的回复,才能说下一句。这是因为接受和发送都在主线程中,不能同时进行。 为了实现同时收发消息,基本设计思路是把收发分别放在不同的线程中进行SendThread 发送消息线程RecieveThread 接受消息线程S原创 2020-07-31 15:24:29 · 145 阅读 · 1 评论 -
366、Java中级21 -【网络编程 - Socket】 2020.07.31
0、目录1、 建立连接2、收发数字3、收发字符串4、参考链接使用 Socket(套接字)进行不同的程序之间的通信1、 建立连接服务端开启8888端口,并监听着,时刻等待着客户端的连接请求客户端知道服务端的ip地址和监听端口号,发出请求到服务端客户端的端口地址是系统分配的,通常都会大于1024一旦建立了连接,服务端会得到一个新的Socket对象,该对象负责与客户端进行通信。注意: 在开发调试的过程中,如果修改过了服务器Server代码,要关闭启动的Server,否则新的Server不能启动,因原创 2020-07-31 15:15:43 · 119 阅读 · 0 评论 -
365、Java中级20 -【网络编程 - IP地址与端口】 2020.07.31
0、目录1、 IP地址2、端口3、获取本机IP地址4、ping命令5、使用java 执行ping命令6、参考链接1、 IP地址在网络中每台计算机都必须有一个的IP地址;32位,4个字节,常用点分十进制的格式表示,例如:192.168.1.100127.0.0.1 是固定ip地址,代表当前计算机,相当于面向对象里的 “this”2、端口两台计算机进行连接,总有一台服务器,一台客户端。服务器和客户端之间的通信通过端口进行。如图:ip地址是 192.168.1.100的服务器通过端口 8080与原创 2020-07-31 15:04:18 · 215 阅读 · 0 评论