Java网络编程 - 网络编程介绍 - 网络通信三要素

这篇具有很好参考价值的文章主要介绍了Java网络编程 - 网络编程介绍 - 网络通信三要素。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络编程

网络编程介绍

什么是网络编程?

网络编程可以让程序与网络上的其他设备中的程序进行数据交互。

网络编程基本模式:

常见的通信模式有如下2种形式:Client-Server(CS: 客户端与服务器模式) 、 Browser/Server(BS: 浏览器与服务器模式)

Client-Server(CS)模式

Java网络编程 - 网络编程介绍 - 网络通信三要素,JavaSE,网络,java,网络协议

Browser/Server(BS)模式

Java网络编程 - 网络编程介绍 - 网络通信三要素,JavaSE,网络,java,网络协议

网络通信三要素

实现网络编程关键的三要素:

IP地址:设备在网络中的地址,是唯一的标识。

端口:应用程序在设备中唯一的标识。

协议: 数据在网络中传输的规则,常见的协议有UDP协议和TCP协议。

Java网络编程 - 网络编程介绍 - 网络通信三要素,JavaSE,网络,java,网络协议

要素一: IP地址

IP地址基本介绍

IP(Internet Protocol):全称”互联网协议地址”,是分配给上网设备的唯一标志。

常见的IP分类为:IPv4和IPv6

IPV4

IPV4: 32位(四个字节)

IPV4每个字节表示一个整数, 每个整数之间使用逗号隔开

Java网络编程 - 网络编程介绍 - 网络通信三要素,JavaSE,网络,java,网络协议

IPV6

IPv6:128位(16个字节),由于IPV4不够用, 所以出现了IPV6, IPV6号称可以为地球每一粒沙子编号。

IPv6分成8个整数,每个整数用四个十六进制位表示, 数之间用冒号(:)分开。

Java网络编程 - 网络编程介绍 - 网络通信三要素,JavaSE,网络,java,网络协议

IP地址形式:

公网地址、和私有地址(局域网使用)。

192.168. 开头的就是常见的局域网地址,范围即为192.168.0.0–192.168.255.255,专门为组织机构内部使用。

IP常用命令:

ipconfig:查看本机IP地址

ping IP地址:检查网络是否连通

特殊的IP地址:

本机IP: 127.0.0.1或者localhost:称为回送地址也可称本地回环地址,只会寻找当前所在本机。

IP地址的操作类

IP地址操作类InetAddress的使用

此类表示Internet协议(IP)地址。

InetAddress API如下:

名称 说明
static InetAddress getLocalHost() 返回本主机的地址对象
static InetAddress getByName(String host) 得到指定主机的IP地址对象,参数是域名或者IP地址
getHostName() 获取此IP地址的主机名
getHostAddress() 返回IP地址字符串
isReachable(int timeout) 在指定毫秒内连通该IP地址对应的主机,连通返回true

前两个静态方法用于获取地址对象

public static void main(String[] args) throws Exception {
    // 返回本机地址对象
    InetAddress ip1 = InetAddress.getLocalHost();
    System.out.println(ip1); // chenyqdeMacBook-Pro.local/127.0.0.1

    // 根据域名或IP地址返回地址对象
    InetAddress ip2 = InetAddress.getByName("www.baidu.com");
    System.out.println(ip2); // www.baidu.com/183.232.231.172
}

获取地址对象后, 可以根据地址对象获取主机名、地址字符串、是否连通等等。

public static void main(String[] args) throws Exception {
    // 返回本机地址对象
    InetAddress ip1 = InetAddress.getLocalHost();
    System.out.println(ip1); // chenyqdeMacBook-Pro.local/127.0.0.1

    // 主机名
    System.out.println(ip1.getHostName()); // chenyqdeMacBook-Pro.local
    // 主机地址
    System.out.println(ip1.getHostAddress()); // 127.0.0.1
    // 三秒内是否连通
    System.out.println(ip1.isReachable(3000)); // true
}

要素二: 端口号

端口号:

端口号:标识正在计算机设备上运行的进程(程序),被规定为一个 16 位的二进制,范围是 0~65535。

例如我们将IP地址看成是酒店名称, 那么端口号就是房间号; 有IP地址有端口号我们才可以准确的找到运行的程序

端口类型:

周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用 80,FTP占用21)

注册端口:1024~49151, 分配给用户进程或某些应用程序。(如:Tomcat占 用8080,MySQL占用3306)

动态端口:49152到65535,之所以称为动态端口,是因为它一般不固定分配某种进程,而是动态分配。

注意:我们自己开发的程序选择注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错

要素三: 协议

通信协议:

连接和通信数据的规则被称为网络通信协议

网络通信协议有两套参考模型:

OSI参考模型:世界互联协议标准,全球通信规范,由于此模型过于理想化,未能在因特网上进行广泛推广。

TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。

OSI参考模型 TCP/IP参考模型 各层对应 面向操作
应用层 应用层 HTTP、FTP、DNS、SMTP… 应用程序需要关注的:浏览器,邮箱。程序员一般在这一层开发
表示层
会话层
传输层 传输层 TCP、UDP… 选择使用的TCP , UDP协议
网络层 网络层 IP、ICMP… 封装源和目标IP,进行路径选择
数据链路层 数据链路层+物理 物理寻址、比特流… 物理设备中传输
物理层

传输层的两个常见的协议:

TCP(Transmission Control Protocol) :传输控制协议

UDP(User Datagram Protocol):用户数据报协议

TCP协议

TCP协议特点:

使用TCP协议,必须双方先建立连接,它是一种面向连接的可靠通信协议。

传输前,采用“三次握手”方式建立连接,所以是可靠的 。

在连接中可进行大数据量的传输 。

连接、发送数据都需要确认,且传输完毕后,还需释放已建立的连接,通信效率较低。

TCP协议通信场景:

对信息安全要求较高的场景,例如:文件下载、金融等数据通信

TCP会进行三次握手确立连接:

第一次握手: 客户端发送网络包,服务端收到了。

  • 服务器端得出结论: 客户端发送能力正常, 服务端接收能力正常

第二次握手: 服务端发包,客户端收到了。

  • 客户端得出结论: 服务端的发送能力和接收能力正常, 客户端的发送能力和接收能力正常;
  • 但是此时服务端并不知道客户端的接收能力是否正常, 所以就会进行第三次握手

第三次握手: 客户端发包,服务端收到了。

  • 服务端得出结论: 客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。

Java网络编程 - 网络编程介绍 - 网络通信三要素,JavaSE,网络,java,网络协议

TCP会进行四次挥手断开连接:

第一次挥手: 客户端向服务端发送一个数据包

  • 告诉服务端:我要跟你断开连接了,不会再给你发数据了;

第二次挥手: 服务端收到数据包后, 向客户端发送一个数据包

  • 服务端告诉客户端:我知道你要断开了,但是我还有数据没有发送完,等发送完了所有的数据就进行第三次挥手

第三次挥手: 服务端向客户端发送一个数据包

  • 这是服务端告诉客户端:我的数据也发送完了,不再给你发数据了

第四次挥手: 客户端收到数据包之后,一样发送一个 ACK 报文作为应答; 并经过一段时间发送确认包

  • 至此断开连接, 四次挥手结束

Java网络编程 - 网络编程介绍 - 网络通信三要素,JavaSE,网络,java,网络协议

UDP协议

UDP协议:

UDP是一种无连接、不可靠传输的协议。

将数据源IP、目的地IP和端口封装成数据包,不需要建立连接

每个数据包的大小限制在64KB内

发送不管对方是否准备好,接收方收到也不确认,故是不可靠的

可以广播发送 ,发送数据结束时无需释放资源,开销小,速度快。

UDP协议通信场景:

语言通话, 视频通话文章来源地址https://www.toymoban.com/news/detail-782990.html

到了这里,关于Java网络编程 - 网络编程介绍 - 网络通信三要素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java 网络编程】网络通信原理、TCP、UDP 回显服务

    互联网从何而来? 这要追溯到上个世纪 50 - 60 年代,当时正逢美苏争霸冷战, 核武器 给战争双方提供了足够的威慑力,想要保全自己,就要保证自己的 反制手段 是有效的。 如何保证能够反击: 保存指挥机构 保存核弹头和发射井 指挥机构和核弹头之间的通信链路 需要保证

    2023年04月10日
    浏览(39)
  • Java网络编程-Socket实现数据通信

    本文主要是为下一篇Websockt做铺垫,大家了解socket的一些实现。 网络编程是指利用计算机网络进行程序设计、开发的技术。网络编程主要包含三个要素,分别是: IP地址和端口号 传输协议 Socket 在计算机网络中,每台计算机都有一个IP地址,用于唯一标识该计算机在网络中的

    2024年02月10日
    浏览(35)
  • Java网络编程之IP,端口号,通信协议(UDP,TCP)

    ① C/S :客户端/服务器 在用户本地需要下载安装客户端程序,在远程有一个服务器端程序。 优点:画面精美,用户体验好 缺点:用户需要下载更新 ② B/S :浏览器/服务器 只需要一个浏览器,用户通过指定网址访问对应的服务器。 优点:不需要开发客户端,只需要页面+服务

    2024年02月03日
    浏览(53)
  • 【Java】网络编程与Socket套接字、UDP编程和TCP编程实现客户端和服务端通信

    为什么需要网络编程? 现在网络普及程序越来越高,网络上保存着我们日常生活中需要的各种资源,使用程序通过网络来获取这些资源的过程就需要网络编程来实现。 什么是网络编程? 网络编程,指网络上的主机,通过不同的进程以程序的方式实现网络通信(网络数据传输)

    2024年02月17日
    浏览(57)
  • 【Java网络编程】基于UDP-Socket 实现客户端、服务器通信

    ​ 哈喽,大家好~我是你们的老朋友: 保护小周ღ   本期为大家带来的是网络编程的 UDP Socket 套接字,基于 UDP协议的 Socket 实现客户端服务器通信 ,Socket 套接字可以理解为是,传输层给应用层提供的一组 API,如此程序,确定不来看看嘛~~ 本期收录于博主的专栏 : JavaEE_保

    2024年02月02日
    浏览(50)
  • 网络编程-Socket通信实现服务器与客户端互传文件(JAVA语言实现)

    在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换. 网络编程三要素:ip地址、端口、协议 ip地址: 每台计算机指定的一个标识符,127.0.0.1是回送地址,可以代表本机地址 ,一般用来测试使用 ipconfig:命令行中查看本机地址 ping ip地址:检查网络是

    2023年04月14日
    浏览(38)
  • 【深入浅出C#】章节 8: 网络编程和远程通信:网络编程和远程通信

    计算机网络是指连接多台计算机设备,通过通信链路共享资源和信息的系统。它构建了一个相互连接的世界,使得人们可以在不同地点进行数据交换和资源共享。网络编程是指在计算机网络中,使用编程语言进行通信和数据传输的技术。现代应用中,网络编程发挥着重要作用

    2024年02月12日
    浏览(51)
  • Java【网络编程2】使用 TCP 的 Socket API 实现客户端服务器通信(保姆级教学, 附代码)

    📕各位读者好, 我是小陈, 这是我的个人主页 📗小陈还在持续努力学习编程, 努力通过博客输出所学知识 📘如果本篇对你有帮助, 烦请点赞关注支持一波, 感激不尽 📙 希望我的专栏能够帮助到你: JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统

    2024年02月05日
    浏览(50)
  • 《3.linux应用编程和网络编程-第8部分-3.8.网络基础》 3.8.1.网络通信概述 3.8.3.网络通信基础知识2

        进程间通信: 管道 、 信号量、 共享内存, 技术多,操作麻烦     线程就是解决 进程间 通信 麻烦的事情,这是线程的 优势 3.8.1.网络通信概述 3.8.1.1、从进程间通信说起: 网络域套接字socket , 网络通信其实就是位于网络中不同主机上面                   的 

    2024年02月15日
    浏览(46)
  • 【网络编程】网络通信基础——简述TCP/IP协议

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得,欢迎大家在评论区交流讨论💌 ip地址简单来说就是用来描述网络上一个设备的所在位置。 端

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包