Java网络编程(一)网络的基本认知

article/2025/10/8 23:23:38

前言

这是一个信息化的时代,在生活中,网络通信无处不在。比如发送短信,邮件,视频通话等。
以邮件为例子:
在这里插入图片描述
收件人: 相当于网络编程的ip地址+端口号,定位到某一个具体的地方!只有找对地方才可以成功发送对吧?
内容: 相当于网络编程中的数据包。也就是具体发送的内容。
内容语言: 相当于是网络协议,比方说我发个英语写的内容给你,不懂英语的人也看不懂内容。双方约定好的格式,就是协议,你懂我懂大家都懂!
发送人: 证明是谁发送的,跟收件人是相对的~

一、IP

ip地址:inetAddress
公网: 一般如果是 大网IP 的话,你的ip地址肯定是唯一的!
例如我的百度云服务器地址:
在这里插入图片描述

局域网内: 一般每个局域网都有自己的子网IP,就是一段连续的IP地址,可以由网络管理员手工配置。一般都是192.168.×.× 这个格式的,主要还是看分配,只要不重复即可~
在这里插入图片描述
ip的分类:

  • ipv4/ipv6
    • IPV4: 127.0.0.1,四个字节组成。0 ~ 255, 42亿~;30亿都在北美,亚洲4亿。2001年就用尽了;
      在这里插入图片描述

    • IPV6: fe80::755f:fc6c:2ebc:b6e6%18,128位。8个无符号整数!
      在这里插入图片描述
      这里显示不全,大概规则是:

2001:0bb2:aaaa:0015:0000:0000:1aaa:1312

有兴趣的可以去这篇文章看看哦:点击跳转

  • ABCD类网址:
    在这里插入图片描述
    看上面的图应该就明白了,图画的丑,见谅~

域名:
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。以上摘自百度百科
通俗的讲就是:ip地址不好记呀!好的域名大家瞄一眼就记住了呀!
比如:www.baidu.com
要知道一个好的渔民可是比北上广的房子还要贵哦,我要是能穿越回去二十年钱,我就把阿里巴巴京东啥的域名全部注册一遍,哈哈,发财了白日梦!

java中获取ip地址:
InetAddress:类的主要作用是封装IP及DNS,因为这个类没有构造器,所以我们要用他的一些方法来获得对象。

public class Test01 {public static void main(String[] args) throws UnknownHostException {//使用InetAddress来获取InetAddress inetAddress = InetAddress.getByName("127.0.0.1");System.out.println("inetAddress:"+inetAddress);//localhost和127.0.0.1是一样的InetAddress inetAddress1 = InetAddress.getByName("localhost");System.out.println("inetAddress1:"+inetAddress1);//getLocalHost方法获取本机ip地址InetAddress inetAddress2 = InetAddress.getLocalHost();System.out.println("inetAddress2:"+inetAddress2);//查询网站ip地址,这个稍微慢点,因为需要链接InetAddress inetAddress3 = InetAddress.getByName("www.baidu.com");System.out.println("inetAddress3:"+inetAddress3);//常用方法System.out.println(inetAddress.getCanonicalHostName());//规范的名字System.out.println(inetAddress.getHostAddress());  //ipSystem.out.println(inetAddress.getHostName()); //域名,或者自己电脑的名字}
}

执行结果如下:
在这里插入图片描述

二、port(端口号)

端口表示一个计算机上面的一个进程,每个进程都有一个自己的端口号。
在这里插入图片描述

  • 不同的进程有不同的端口号,用来区分进程!
  • 被规定0 ~ 065535
  • 不同协议可以一样。TCP,UDP:65535 * 2 ,单个协议下,端口号不能冲突
  • 端口分类
    • 公有端口0 ~ 1023
    • HTTP:80
    • HTTPS:443
    • FTP:21
    • Telent:23
  • 程序注册端口:1024 ~ 49151,分配给用户或者程序
    • Tomcat:8080
    • MySQL:3306
    • Oracle:1512
  • 动态、私有:49152 ~ 65535

代码示例:
InetSocketAddress类主要作用是封装端口 他是在在InetAddress基础上加端口,但它是有构造器的。具体的一些方法可以去帮助文档查看。

public class Test02 {public static void main(String[] args) {InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1",8080);System.out.println(socketAddress);//常用方法System.out.println(socketAddress.getAddress());System.out.println(socketAddress.getHostName());System.out.println(socketAddress.getPort());}
}

执行结果如下:
在这里插入图片描述

三、通信协议

协议=约定
网络通信协议: 速率,传输码率,传输控制……
TCP/IP协议簇:实际上是一组协议,看图说话:
在这里插入图片描述
TCP/UDP区别:

  • TCP:用户传输协议
    • 打电话
    • 三次握手 四次挥手
    • 客户端、服务端
    • 传输完成,释放连接,效率低
  • UDP:用户数据报协议
    • 不连接,不稳定
    • 客户端、服务端:没有明确的界限,两者可以随意变换
    • 不管有没有准备好,都可以发给你…你要不要,不要你说了算,我想给你必须要,丢不丢也不关我的事儿哦~
    • DDOS:洪水攻击!(饱和攻击)

上面的为啥叫TCP/IP协议簇?因为这两货最出名。。。。

重点: 三次握手,四次挥手如何理解:
老规矩,对比可以让我们加深理解,先看官方解释:

  • 官方解释:

    • 三次握手在这里插入图片描述
    • 四次挥手:在这里插入图片描述
      说实话我看着头也疼。
  • 大大丁大大理解版本:

    • 三次握手:
      最少需要三次,保证稳定连接!
      ①A:你瞅啥?
      ②B:瞅你咋地?
      ③A:干一场!

    • 四次挥手
      情人节版本:
      ①A:分手吧!
      ②B:真的要分手吗?
      ③B:(确认一次)真的真的要分手吗?
      ④A:分手!

Java注解和反射扩展:Java网络编程学习汇总

路漫漫其修远兮,吾必将上下求索~
如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧**转载请注明出处哦**


http://chatgpt.dhexx.cn/article/2eDiP3Nv.shtml

相关文章

第四章 使用JAVA构建神经网络

• 构建一个神经网络 •激活函数 • Encog持久化 •在代码里使用Encog Analyst 这章将展示用Encog怎样构造前馈与简单递归神经网络,以及在最后部分怎样保存这些神经网络。创建神经网络类型使用BasicNetwork和BasicLayer这两个类,除了这两个类,还使用…

深入浅出讲解神经网络的种类及举例说明

本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!个人主页:有梦想的程序星空个人介绍:小编是人工智能领域硕士,全栈工程师&a…

Java网络基础知识

目录 一,计算机网络 1,概念 2,计算机网络的主要功能 3,计算机网络分类 二,网络通信协议及接口 1,网络通信协议 2,网络通信接口 3,通信协议分层思想 4,协议分类 …

神经网络可以用来分类吗,神经网络如何实现分类

怎么用spss神经网络来分类数据 。 用spss神经网络分类数据方法如下:神经网络算法能够通过大量的历史数据,逐步建立和完善输入变量到输出结果之间的发展路径,也就是神经网络,在这个神经网络中,每条神经的建立以及神经…

BP神经网络JAVA实现详解

注:本文手动搬家自我的新浪博客点击打开链接 从2016年3月份左右,我的毕业设计开题答辩时间正好是AlphaGo大战李世石之日。还记得当时答辩PPT最末引用的图片还是这张: 李世石大战Google的AlphaGo 不过当时答辩情况并不理想,答辩组老…

Java网络编程--网络基础

文章目录 网络协议常用网络协议族(簇)(protocol)端口(port)常见知名端口动态端口 IP地址IP地址分类IPv4的分类IPv6子网掩码 网络协议 是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。为了使不同计算机厂家生产的计…

神经网络如何实现分类,神经网络基本概念

人工神经网络分类方法 从20世纪80年代末期,人工神经网络方法开始应用于遥感图像的自动分类。 目前,在遥感图像的自动分类方面,应用和研究比较多的人工神经网络方法主要有以下几种:(1)BP(BackP…

神经网络如何进行分类

1.首先搞清楚什么是感知机 如上图所示,输入为向量,经线性变换,再通过激活函数得到输出,这样一个完整的结构成为感知机。感知机是人工神经网络的最小单元,本质上由一个仿射变换接一个非线性变换组成。 上图wxb属于仿射变…

Java基础学习(17)网络编程

Java基础学习 一、 网络编程1.1 什么是网络编程1.2 常见的软件架构:1.3 网络编程的三要素1.4 IP1.4.1 InetAddress用法 1.5 端口号1.6 协议1.6.1 UDP协议1.6.1.1 UDP的三种通信方式 1.6.2 TCP协议1.6.2.1 TCP底层原理 一、 网络编程 1.1 什么是网络编程 解释&…

java简单的神经网络

运行环境:jre1.7 以下是神经网络的主体类 public class NeuralNetwork {int inputNodes;//输入层节点数int hiddenNodes;//隐藏层节点数int outputNodes;//输出层节点数double learningRate;//学习率double[][] weight_ih;//输入层与隐藏层之间的权重double[][] w…

java实现神经网络算法,java调用神经网络模型

如何用70行Java代码实现神经网络算法 。 如何用70行Java代码实现神经网络算法import.Random;publicclassBpDeep{publicdouble[][]layer;//神经网络各层节点publicdouble[][]layerErr;//神经网络各节点误差publicdouble[][][]layer_weight;//各层节点权重publicdouble[][][]la…

神经网络如何实现分类,神经网络分类特点区别

人工神经网络分类方法 从20世纪80年代末期,人工神经网络方法开始应用于遥感图像的自动分类。 目前,在遥感图像的自动分类方面,应用和研究比较多的人工神经网络方法主要有以下几种:(1)BP(Back …

Java神经网络(一)——Neuroph初次使用

Java神经网络 前言Neuroph框架Neuroph结构框架图Java API 及其类库说明(core nnet util) Neuroph简单案例实现下载必要的Neuroph jar包导入jar包找案例(在书中或者网上)运行解决方案 前言 学了好一阵子时间的神经网络,…

神经网络分类

人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统…

神经网络分类总结

1.人工智能、机器学习与深度学习 人工智能:努力将通常由人类完成的智力任务自动化。机器学习机器学习( machine learning)是人工智能的一个特殊子领域,其目标是仅靠观察训练数据来自动开发程序[即模型( mo…

神经网络分类四种模型,神经网络分类特点区别

神经网络有哪些主要分类规则并如何分类? 神经网络模型的分类人工神经网络的模型很多,可以按照不同的方法进行分类。其中,常见的两种分类方法是,按照网络连接的拓朴结构分类和按照网络内部的信息流向分类。 1按照网络拓朴结构分类…

【学习记录】神经网络三种主要类型

1.图结构 图网络是定义在图结构数据上的神经网络:①图中每个节点都由一个或一组神经元组成②节点之间连接可以有向可以无向③每个节点可接收来自相邻节点或自身的信息。 2.前馈神经网络 前馈神经网络中,把每个神经元接受信息的先后分为不同的组&#xf…

神经网络的类型分类和结构理解

一、序言 神经网络是模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。 在深度学习领域,神经网络就是我们深度学习的灵魂,如果我们想依靠算法实现一些功能,就必须依托不同的神经网络结构,所以很有必…

idea构建spark开发环境(基于maven)

目前Intellij IDEA对scala支持的比较好,本文使用idea构建spark开发环境。 1.准备工作 jdk版本,scala sdk环境(我的是jdk1.8,scala 2.1) scala官网下载地址:http://www.scala-lang.org/download/ 2.Intellij IDEA 下载地址ht…

Spark多语言开发

目录 1 多语言开发-说明2 Java-Spark-掌握2.1 SparkCore2.2 SparkStreaming2.3 SparkSQL2.4 StructuredStreaming2.5 线性回归算法-房价预测案例2.5.1 需求代码实现 3 PySpark-了解3.1 SparkCore3.2 SparkStreaming3.3 SparkSQL3.4 StructuredStreaming3.5 决策树算法-相亲决策…