网络编程(JAVA)

前言:Java 是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。

Java 提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在
Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的
网络库, 程序员面对的是一个统一的网络编程环境
 

1.网络编程概述

计算机网络:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成
一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共
享硬件、软件、数据信息等资源

网络编程的目的:直接或间接的通过网络协议与其他计算机实现数据交互,进行通讯

网络编程的三个问题:

- 问题1:如何精准的定位到每台电脑

- 问题2:如何精准的定位到主机上特定的应用(进程)

-问题3:找到主机后,如何进行可靠的数据传输

2.要素1:IP地址

使用具体的ip地址对应具体的一个互联网上的主机

IP分类:

  角度一:IPv4(4个字节),IPv6(16个字节)

 角度二:共有地址(万维网),私有地址(局域网)

IP地址对应指定的域名

 

   -使用InetAddress来表示域名或者ip地址:

     实洌化:getByName(String host),getLocalHost()

     方法:

3.要素2:端口号

  -用于区分主机上不同的进程

-----对应主机上的进程或应用,每个进程都有一个端口号

(注:只有运行的的才会叫做进程,或者就是一个程序)

端口号是特定的,但是可以给进程设置端口号,因为端口号冲突(冲突是指两个端口号相同的进程同时运行才会冲突,只运行一台时不会影响的)程序是无法运行的。

范围:

4.要素3:网络通信协议

这里有两套参考模型
• OSI 参考模型:模型过于理想化,未能在因特网上进行广泛推广
• TCP/IP 参考模型(或 TCP/IP 协议):事实上的国际标准。
 --涉及到两种传输协议:TCO与UDP协议

TCP:可靠的协议,因为传输时需要双方建立连接(三次握手,四次挥手),然后才能进行大量的数据传输,效率低

涉及到的应用进程:客户端和服务端

TCP案列:打电话

UDP:不可靠的协议(又叫数据包或者数据报协议),不需要对方确认建立连接就可以发送信息

使用数据报传输(限制在64k以内)在进行网络编程客户端发送时是不需要指定端口号和ip地址的,但是需要在数据包里面指定(DatapramPacket类中)

涉及到的应用进程:接收端和发送端

UDP案列:发送短信,发电报

三次握手

第一次挥手:客户端向服务端发送TCP连接的请求

第二次挥手:服务端向客户端发送TCP连接请求的确认

第三次挥手:客户端向服务端发送TCP连接请求确认的确认

四次挥手

第一次挥手:客户端向服务器发送结束连接,让服务器做最后的准备工作。

此时,客户端处于半关闭状态,即表示不再向服务器发送数据了,但是还可以接受数据

第二次挥手:服务器接受到客户端释放连接的请求后,会将最后的数据发送给客户端,并告知上层应用进程不再接受数据

第三次挥手:服务器发送完数据后,会给客户端发送一个释放连接的报文。那么客户端接受后就直到可以正式释放连接了

第四次握手:客户端接收到服务器最后释放连接的报文后,要回复一个彻底断开的报文。

这样服务器收到后才会彻底释放连接。这里客户端,发送最后的报文后,会等待2MSL,因为有可能服务器没有收到最后的报文,那么服务器迟迟没有收到,就会再次给客户端发送释放连接的报文,此时客户端在等待时间范围内接收到,会重新发送最后的报文,并重新计时,如果等待2SML后没有收到,那么彻底断开。

5.TCP网络编程

    

6.UDP网络编程

7.URL编程

  JAVA后台:将写好的Java程序部署在Tomact服务器上。启动Tomact服务器。

  前台:使用浏览器进行访问,需要URL。(HTML+CSS+JS)

  URL作用:定位互联网上某一资源的地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2812207.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

docker创建mongodb数据库容器

介绍 本文将通过docker创建一个mongodb数据库容器 1. 拉取mongo镜像 docker pull mongo:3.63.6版本是一个稳定的版本,可以选择安装此版本。 2. 创建并启动主数据库 容器数据卷配置 /docker/mongodb/master/data # 数据库数据目录(宿主机&am…

kuka协作机器人LBR系列 issy15R930导入到ros2_rviz(带外观文件)

kuka协作机器人LBR系列 issy15R930导入到ros2_rviz(带外观文件)外观文件未调整好,外观仍需进一步研究,外观文件dae与轮廓(碰撞)文件STL并未完全对应起来。在blender里面看了一下UR机器人的文件,是对应的&am…

产品经理学习-产品运营《什么是SOP》

目录 什么是SOP 如何执行SOP 执行SOP的重点 什么是SOP SOP就是项目流程操作的说明书 日常工作中的例行操作: 例行操作是指,在每一天,针对每一个用户,在每个项目之中,都必须完成的操作,这些必须完成的操…

数据可视化引领智慧工业新时代

在智慧工业的大潮中,数据可视化崭露头角,以其直观、清晰的方式赋能工业生产,为智慧工业的高效运转提供了强有力的支持。下面我就以可视化从业者的角度,简单聊聊这个话题。 数据可视化首先在智慧工业的生产监控中大显身手。通过将…

电脑休眠之后唤不醒

现象:午休时间电脑休眠了,醒来之后发现在密码输入界面,但鼠标键盘没反应。按重启键或电源机重新开机,结果开不了机。 原因:1、内存条脏了,导致内存条读取失败 2、休眠的时候硬盘休眠了,导致按…

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

【精选】Java面向对象进阶——静态内部类和局部内部类

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

计算机网络-后退N帧协议(弊端 滑动窗口 运行中的GBN 滑动窗口长度习题 GBN协议性能分析 )

文章目录 停等协议的弊端后退N帧协议中的滑动窗口GBN发送方必须响应的三件事GBN接受方要做的事运行中的GBN滑动窗口长度GBN协议重点总结习题1习题2GBN协议性能分析小结 停等协议的弊端 信道利用率低:在停等协议中,发送方在发送完一帧后必须等待接收方确…

面试redis篇-11Redis集群方案-哨兵

Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。哨兵的结构和作用如下: 监控:Sentinel 会不断检查您的master和slave是否按预期工作自动故障恢复:如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主通知:Sentinel充当…

递归与回溯(一)

递归 递归一定要有出口,不然会无限调用,死循环 string fun(int n){if(n0)return "a";if(n1)return "b";return fun(n - 1) fun(n - 2); }输出前8种结果: 双写数字递归例子 注意递归的return int doubleNum(int n){i…

git bash:ls查看文件颜色全部为白色的解决方法(已解决)

方法一: 修改~/.bashrc文件或者~/.profile文件,添加如下内容 alias lsls --colorauto 然后 source一下,让修改配置生效 source ~/.profile 然后再ls OK了

vue3+electron开发桌面应用,静态资源处理方式及路径问题总结

1、静态资源放到src/assets/目录下 静态资源,例如图片、静态的JSON文件、视频、CSS等等,放到src/assets目录下。 不然会很蛋疼,这个坑我踩过了。切记,切记!! 以下是CHATGPT-4 Turbo的回答: 在 Vue 应用程序中,src/assets 目录确实有特别的处理。当你使用 Vue CLI 创…

好用的IP反查接口

IP-API.com - Geolocation API - Documentation - JSON 自定义返回参数调用(1): http://ip-api.com/json/24.48.0.1?fieldsstatus,message,country,countryCode,region,regionName,cityhttp://ip-api.com/json/24.48.0.1?fieldscountry,co…

<网络安全>《54 概念讲解<第一课 IT和OT>》

1 基本概念 IT:Information Technology的缩写,指信息技术;主要指的是企业中的各个应用系统,包括ERP、MES、EAM、OA等,分布部署在不同的网络层级。除了应用系统,还有计算机,服务器等等&#xff…

input框 自动获取焦点

<el-input style"width:200px" autofocus v-model"leftListname"></el-input> element-ui 的 el-input 组件的 autofocus 属性在某些情况下不能实现自动聚焦,有几个可能的原因: 1. autofocus 在移动设备上不被支持。如果是在移动设备上访问,au…

泽攸科技JS系列高精度台阶仪在半导体领域的应用

泽攸科技JS系列高精度台阶仪是一款先进的自主研发的国产台阶仪&#xff0c;采用了先进的扫描探针技术。通过扫描探针在样品表面上进行微观测量&#xff0c;台阶仪能够准确获取表面形貌信息。其工作原理基于探针与样品表面的相互作用力&#xff0c;通过测量探针的微小位移&#…

【蓝桥杯单片机入门记录】动态数码管

目录 一、数码管动态显示概述 二、动态数码管原理图 &#xff08;1&#xff09;原理图 &#xff08;2&#xff09;动态数码管如何与芯片相连 &#xff08;3&#xff09;“此器件” ——>锁存器74HC573 三、动态数码管显示例程 &#xff08;1&#xff09;例程1&#xf…

Day02:Web架构前后端分离站Docker容器站集成软件站建站分配

目录 常规化站点部署 站库分离 前后端分离 集成软件搭建Web应用 Docker容器搭建Web应用 建立分配站 静态 与 伪静态 总结 章节知识点&#xff1a; 应用架构&#xff1a;Web/APP/云应用/三方服务/负载均衡等 安全产品&#xff1a;CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗…

理想滤波器、巴特沃斯滤波器、高斯滤波器实现(包含低通与高通,代码实现与分析)

本篇博客聚焦理想滤波器、巴特沃斯滤波器、高斯滤波器进行原理剖析、代码实现和结果总结&#xff0c;代码含有详细注释&#xff0c;希望帮助大家理解。 以下将从理想低通滤波器、理想高通滤波器、巴特沃斯低通滤波器、巴特沃斯高通滤波器、高斯低通滤波器、高斯高通滤波器六个…

SINAMICS V90 指导手册 第2章 2.2_系统配套表

V90 PN配套表一共有三张&#xff0c;分别是200V低惯量配套表、400V高惯量配套表和400V带直型连接器的配套表。其中200V电压等级低惯量伺服功率范围从0.05-2kW&#xff0c;额定扭矩从0.16-6.37Nm&#xff0c;电缆长度分别是3m、5m、10m、20m四种型号&#xff1b;400V电压等级带直…