首页 > 编程语言 >Java编程学习笔记01

Java编程学习笔记01

时间:2023-09-20 13:46:55浏览次数:42  
标签:01 Java -- IP 编程 端口 网络 TCP 0.0

网络编程笔记  2023.2.28---2023.3.10
/*
1.1 什么是计算机网络
计算机网络是指将==地理位置不同==的具有独立功能的多台计算机及其外部设备,
通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理协调下,
实现资源互通和信息共享传递的计算机系统

// 打电话 --连接-- 接了--通话 TCP
// 发短信 --发送了就完事了 --接收 UDP

网络编程的目的:
无线电台...传递交流信息,数据交换,通信

想要达到这个效果需要什么:
1.如何准确的定位网络上的一台主机 192.168.1.4:端口,定位到这个计算机上的某个资源,某个软件
2.找到了这个主机,如何传输数据呢?

javaWeb : 网页编程 --B/S架构
网络编程:TCP/IP --C/S架构

1.2 网络通信的要素
如何实现网络的通信?
通信双方地址:
--IP
--端口号
--192.168.1.4:5900
规则:网络通信的协议
TCP/IP 参考模型
OSI 的体系结构(国际)--物链网传会表应、TCP/IP 的体系结构--(应用层、传输层、网际层IP、网络接口层)、五层协议的体系结构--物链网传应

小结:
1.网络编程中有两个主要的问题
(1)如何准确的定位到网络上一台或多台主机 :例:命令行窗口 ping www.baidu.com
(2)找到主机之后如何通信
2.网络编程中的要素
(1)IP和端口号---IP
(2)网络通信协议---udp、tcp
3.万物皆对象---Java

1.3 IP
ip地址:InetAddress --java中表示IP地址的类
(1)唯一定位一台网络上的计算机
(2)127.0.0.1 == 本机(代表)localhost
(3)ip地址的分类
a.ipv4/ipv6
a.1:ipv4 四个字节组成 127.0.0.1,从0~255,总的有42亿多个;30亿都在北美,亚洲4亿,2011年就用尽
a.2:ipv6 2409:8a6c:4c4d:d510:f420:75ff:652c:f11,128位,8个无符号整数!
b.公网(互联网)、私网(局域网)
b.1:192.168.xx.xx —— 专门给组织内部用的
b.2:ABCDE-ip地址的区分:
A、B、C三类及特殊D、E。全0和全1的都保留
A:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0
网络号取值于1~126
大型网络。
B:(128.0.0.0-191.255.0.0)(默认子网掩码:255.255.0.0
该类IP地址的最前面为“10”,
网络号取值于128~191
中等规模
C:(192.0.0.0-223.255.255.0)(子网掩码:255.255.255.0
该类IP地址的最前面为“110”,
网络号取值于192~223
小型网络。
D:是多播地址。
该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。
用于多路广播用户
E:是保留地址。
该类IP地址的最前面为“1111”,
网络号取值240~255
私有地址
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
回送地址:127.0.0.1。 也是本机地址,等效于localhost或本机IP。一般用于测试使用。
ping 127.0.0.1来测试本机TCP/IP是否正常。
————————————————
版权声明:本文为CSDN博主「fgh431」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhoutianzi12/article/details/103199111
(4)域名:记忆IP问题!
a.IP:www.vip.com

1.4 端口
端口表示计算机上的一个程序的进程
(1)不同的进程有不同的端口号!用来区分软件!
(2)被规定 0-65535
(3)TCP,UDP:65535*2 tcp:80(用的端口),udp:单个协议下,端口号不能冲突
(4)端口分类
a.公用端口 0-1023
HTTP:80(端口号)
HTTPS:443
FTP:21
Telnet:23
b.程序注册端口:1024-49151,分配用户或者程序
Tomcat:8080
MySQL:3306
Oracle:1521
c.动态、私有端口:49152-65535——尽量不要用这些端口
DOM 命令
netstat -ano #查看所有的端口
netstat -ano|findstr "5900" #查看指定的端口
tasklisk|findstr "8696" #查看指定端口的进程

快捷键打开任务管理器---Ctrl + shift + Esc
idea快捷键:快速补齐方法左边--法1:ctrl + Shift + V/ 法2:ctrl + alt + v
idea快捷键--生成构造器--alt + insert

1.5 通信协议
协议:约定,就好比我们现在说的是普通话
网络通信协议:速率、传输码率、代码结构、传输控制
问题:非常的复杂
大事化小:分层!
TCP/IP协议簇:实际上是一组协议
TCP:用户传输协议
UDP:用户数据报协议
出名的协议:
TCP
IP:网络互连协议

TCP与UDP对比
TCP:打电话
连接:稳定
三次握手,四次挥手---最少需要三次,保证稳定连接
客户端、服务端
传输完成、释放连接、效率低

UDP:发短信
不连接,不稳定
客户端、服务端、没有明确的界限
不管有没有准备好,都可以发给你
DDOS:洪水攻击(饱和攻击)

1.6 TCP
客户端
1.连接服务器 Socket
2.发送消息
服务器
1.建立服务的端口 ServerSocket
2.等待用户的链接 accept
3.接受用的消息

1.7 UDP
发短信,不用连接

1.7 URL

统一资源定位符:定位资源的,定位互联网上某一个资源
DNS:域名解析
*/

标签:01,Java,--,IP,编程,端口,网络,TCP,0.0
From: https://www.cnblogs.com/CaiDingChao/p/17717090.html

相关文章

  • Java编程学习笔记02
    GUI编程2023.3.11--现在Gui编程已经被淘汰,用的很少很少一、简介:Gui的核心技术:Swing和AWT原因:1.界面不美观2.需要jre环境!为什么要学习?1.可以写出自己心中想要的一些小工具2.工作时候,有可能需要维护到Swing界面,概率极小3.了解MVC架构,了解监听!怎么学?怎么用组件(Component):窗......
  • Java学习一路-Demo01-Java数据类型
    packagecom.chao.base;publicclassDemo01{/*Java数据类型两大类:基本数据类型和引用类型1.基本数据类型共8种:(1)数值类型分为:整数类型(4种):a.byte(字节型),占1个字节,取值范围(-128~127)b.short(短整型),占2个字节,取值范围......
  • Java学习之路-Demo02
    packagecom.chao.base;publicclassDemo02{publicstaticvoidmain(String[]args){//整数拓展:进制二进制0b十进制八进制0十六进制0xinti=10;inti1=010;//八进制0inti2=0x10;//十六进制0x0~9A~F16System......
  • Java学习之路-Demo03-类型转换
    packagecom.chao.base;publicclassDemo03{publicstaticvoidmain(String[]args){inti=128;byteb=(byte)i;//内存溢出doubled=i;//强制转换(类型)变量名高-->低例:int转byte,int转short,int转char等//自动转换......
  • 个人项目-小初高算数题目生成(Java互评)
    目录简介测试与分析功能测试代码分析总结一、简介本博客对结对编程队友高义林同学的个人项目进行分析测试,使用语言为Java。需求如下图所示:二、测试与分析1.功能测试1.登录功能测试分析:登录时输入错误账密、错误密码、空的账密均不可成功登录,可......
  • 无涯教程-JavaScript - AVERAGE函数
    描述AVERAGE函数返回参数的平均值(算术平均值)。语法AVERAGE(number1,[number2]...)争论Argument描述Required/OptionalNumber1Thefirstnumber,cellreference,orrangeforwhichyouwanttheaverage.RequiredNumber2,...Additionalnumbers,cellrefe......
  • 揭秘ES2017令人兴奋的语言特性
    大家好!我是星辰编程理财。今天我分享一篇关于ES2017(ES8)的文章,它将介绍ES2017的语言特性和功能,包括异步编程的神器async/await、对象操作的便捷利器Object.values()和Object.entries(),以及字符串填充的灵活运用等等。通过详细的阐述和示例,我将带领大家一起探索这些特性的用处,作为刚......
  • 揭秘ES2018令人兴奋的语言特性
    大家好!我是星辰编程理财。今天我分享一篇关于ES2018(ES9)的文章,它将介绍ES2018的语言特性和功能,包括异步迭代器(AsynchronousIterators)、Promise.prototype.finally()方法、Rest/Spread属性(Rest/Spreadproperties)、正则表达式命名捕获组(Namedcapturegroupsinregularexpressio......
  • 揭秘ES2019令人兴奋的语言特性
    大家好!我是星辰编程理财。今天我分享一篇关于ES2019(ES10)的文章,它将介绍ES2019的语言特性和功能,包括Array.prototype.flat、Promise.prototype.finally()、BigInt、Object.fromEntries()、Dynamicimport()函数等等。通过我的视角以及详细的阐述和示例,带领大家一起探索这些特性的用......
  • 结对编程队友个人项目互评
    一、项目简介1.项目名称:中小学数学卷子自动生成程序2.项目作者:党郑骅霖3.项目编程语言:Java 二、项目分析1.类图 2.流程图3.代码分析核心方法解析:1.`main`方法:-程序的入口点,包含主要的程序逻辑。-初始化已有用户列表,接收用户输入,允许用户登录,并根据用户的......