Java SE : 第21章 网络编程

食用前说明:

本文章内容来自B站韩顺平老师的课堂笔记,本人只是将其进行自我整理,内容有所删减,韩顺平老师的B站课程AV号:BV1fh411y7R8

本文章内容来自韩顺平老师的课堂笔记的 第21章 网络编程。

21.1 网络的相关概念

概念作用
网络通信两台设备之间通过网络实现数据传输1. 将数据通过网络从一台设备传输到另一台设备
  1. 在 java.net 包下提供了一系列的类或接口,供程序员使用,完成网络通信

    概念作用
    网络两台或多台设备通过一定物理设备连接起来构成了网络根据网络的覆盖范围不同,对网络进行分类:局域网、城域网 (一个城市)、广域网 (例:万维网,互联网)
    ip地址用于唯一标识网络中的每台计算机/主机1. 查看ip地址:ipconfig
  2. ip地址的表示形式:点分十进制 XX.XX.XX.XX

  3. 每个十进制数的范围:0~255

  4. ip地址的组成 = 网络地址 + 主机地址,比如:192.168.16.69

  5. IPv6 是互联网工程任务组设计的用于替代 IPv4 的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址

  6. 由于 IPv4 最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6 的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。特殊的127.0.0.1 表示本机地址

    概念作用
    域名将ip地址映射成域名,怎么映射上,通过HTTP协议好处:为了方便记忆,解决记ip的困难
    端口号用于标识计算机上某个特定的网络程序1. 表示形式:以整数形式,端口范围0~65535 [2个字节表示端口 0~2^16-1]
  7. 0~1024已经被占用,比如 ssh 22,ftp 21,smtp 25 http 80

  8. 常见的网络程序端口号:

         tomcat :8080

        mysql :3306

        oracle :1521

        sqlserver :1433

  1. 网络通信协议协议(tcp/ip) TCP/IP (Transmission Control Protocol / Internet ProtocoI)的简写,中文名为 ”传输控制协议 / 因特网互联协议“,又叫网络通讯协议,这个协议是 Internet 最基本的协议、Internet 国际互联网络的基础,简单地说,就是由网络层的 IP协议和传输层的 TCP协议组成的。
    TCP协议传输控制协议TCP协议
  2. 使用 TCP协议前,须先建立TCP连接,形成传输数据通道

  3. 传输前,采用 "三次握手" 方式,是可靠的

  4. TCP协议进行通信的两个应用进程:客户端、服务端

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

  6. 传输完毕,需释放已建立的连接,效率低

  7. 将数据、源、目的封装成数据包,不需要建立连接

  8. 每个数据报的大小限制在64K内, 不适合传输大量数据

  9. 因无需连接,故是不可靠的

  10. 发送数据结束时无需释放资 (因为不是面向连接的),速度快

21.1.1 网络通信协议模型分层

OSI模型TCP/IP模型TCP/IP模型各层对应协议
应用层
表示层
会话层应用层HTTP、ftp、telnet、DNS...
传输层传输层(TCP)TCP、UDP、...
网络层网络层(IP)IP、ICMP、ARP...
数据链路层
物理层物理 + 数据链路层Link

21.2 InetAddress 类

21.2.1 相关方法

功能
getLocalHost获取本机 InetAddress 对象
getByName根据指定主机名/域名获取 ip地址对象
getHostName获取 InetAddress 对象的主机名
getHostAddress获取 InetAddress 对象的地址

21.3 Socket

21.3.1 基本介绍

  1. 套接字 (Socket) 开发网络应用程序被广泛采用,以至于成为事实上的标准。

  2. 通信的两端都要有 Socket ,是两台机器间通信的端点

  3. 网络通信其实就是 Socket 间的通信。

  4. Socket 允许程序把网络连接当成一个流,数据在两个 Socket 间通过 IO 传输

  5. 一般主动发起通信的应用程序属客户端,等待通信请求的为服务端

  • 示意图

21.4 TCP 网络通信编程

21.4.1 基本介绍

  1. 基于客户端 —— 服务端的网络通信

  2. 底层使用的是 TCP/IP 协议

  3. 应用场景举例:客户端发送数据,服务端接受并显示控制台

  4. 基于 Socket 的 TCP 编程

21.4.2 netstat 指令

  1. netstat -an 可以查看当前主机网络情况,包括端口监听情况和网络连接情况

  2. netstat -an | more 可以分页显示

  3. 要求在 dos 控制台下执行 win + r

  • 说明:

    (1) Listening 表示某个端口在监听

    (2) 如果有一个外部程序 (客户端) 连接到该端口,就会显示一条连接信息

    (3) 可以输入 ctrl + c 退出指令

21.5 UDP 网络通信编程 [了解]

21.5.1 基本介绍

  1. 类 DatagramSocket 和 DatagramPacket [数据/数据报] 实现了基于 UDP 协议网络程序。

  2. UDP数据报通过数据报套接字 DatagramSocket 发送和接收,系统不保证 UDP 数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。

  3. DatagramPacket 对象封装了 UDP 数据报,在数据报中包含了发送端的 IP 地址 和 端口号 以及接收端的 IP 地址 和 端口号。

  4. UDP 协议中每个数据报都给出了完整的地址信息,因此无须建立发送方和接收方的连接

21.5.2 基本流程

  1. 核心的两个类/对象 DatagramSocket 与 DatagramOacket

  2. 建立发送端,接收端 (没有服务端和客户端概念)

  3. 发送数据前,建立数据包/报 DatagramPacket 对象

  4. 调用 DatagramSocket 的发送、接收方法

  5. 关闭 DatagramSocket

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java高级程序设计第四章是关于网络编程的。关于网络编程的详细内容可以在《完整版 Java高级教程 Java语言程序设计 第4章 Java泛型(共10页).ppt》中找到。网络编程是使用Java编程语言进行网络应用开发的过程,它涉及到使用Socket建立连接、传输数据和进行网络通信等方面的知识。在这一章节中,你将学习如何使用Java网络编程API,实现客户端和服务器端之间的通信。具体内容包括Socket编程、TCP协议、UDP协议、HTTP协议以及常见的网络通信问题等等。这些知识将帮助你了解和掌握Java网络编程的基础知识和技巧。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [完整版 Java编程基础入门教程 Java语言程序设计 第10章_网络编程(共68页).ppt](https://download.csdn.net/download/qq_27595745/66227868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [完整版 Java高级教程 Java语言程序设计 第4章 Java泛型(共10页).ppt](https://download.csdn.net/download/qq_27595745/66774031)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值