冰墩墩|Java:探索Java网络API

冰墩墩|Java:探索Java网络API

文章图片


Java 是现代网络编程中使用的主要编程语言之一 。 网络编程支持不仅是指提供 API 以在两台或多台远程计算机之间建立通信 , 而且还提供所有必要的手段 , 即使是新手程序员也可以轻松访问网络资源 。

【冰墩墩|Java:探索Java网络API】Java 中有一个专门用于此原因的完整包 , 称为 java.net 包 。 到目前为止 , 网络是一个庞大而复杂的主题 , 但在本文中 , 我们将尝试从 Java API 的角度探索网络编程的一些关键点 。
网络概述套接字的概念构成了现代网络编程的基础 , 它指的是网络中两台计算机之间的通信端点 。 套接字编程使我们能够一次在多个客户端之间建立通信 , 通信的信息类型也根据与套接字一起使用的端口号而有所不同 。 因此 , 一台计算机不仅可以与多个客户端进行通信 , 还可以与多种类型的信息进行通信 。
在网络传输过程中 , 数据被分成更小的块 , 称为数据包 , 然后通过网络发送到一个地址 。 这种通信的规范称为路由协议 。 网际协议(IP)是一种将信息传输到目标地址但不保证所述数据包将被传递的低级协议 。 这意味着根据该协议的通信被标记为不可靠 。 还有另一种称为传输控制协议 (TCP) 的协议 , 它是一种高级协议 , 它通过对未传递的数据包进行分类和重新传输到目标地址来以可靠的方式管理数据包的传输 。
因此 , 该协议称为 TCP/IP 。 该协议预留了1024个端口 , 用于确定一些高阶协议 。 为了消除混淆 , 请注意这些特定协议决定了传输信息的类型 , 而低级协议 (TCP/IP) 只关心如何通过将信息调整为称为数据包的更小块来传输数据的机制 , 而无需关心它包含的信息类型 。
我们熟悉其中许多特定协议 。 通常 , 特定的端口号由特定的协议标识 。 但是 , 出于安全原因 , 服务器管理员可能会覆盖此设置 。 但是 , 一般来说 , 它们与端口号关联如下:文件传输协议或 FTP (21)、Telnet (23)、简单邮件传输协议或 SMTP (25)、whois (43)、超文本传输协议或 HTTP ( 80) 等等 。 在特定端口中接收到的通信决定了客户端将如何与接收到的数据进行交互 。 例如 , 在端口 80 (HTTP) 中接收到的数据意味着只有浏览器才能理解;这意味着它包含超文本页面和图像 。

最后 , 网络通信的关键组成部分是计算机本身的地址 , 称为 IP(Internet 协议)地址 。 网络中的每台计算机都必须有一台 。IPv4(IP 地址版本 4)地址是一个 32 位值 , 组织为四个 8 位值块 。IP 地址的另一个最新发展是 IPv6(版本 6) , 它使用 8 个 16 位块中的 128 位值来表示一个地址 。 一个比另一个有几个优点和缺点 , 但是在编程时 , 我们不必过多关注它们 , 因为它是由 Java 自动处理的 。
Java中的网络
Java 支持 TCP 和 UDP 协议 , 其中 TCP 用于跨网络的可靠的面向连接、基于流的 I/O , 而 UDP 用于快速、不可靠的点对点数据报连接 。 与 UDP 相关的标签“不可靠性”有点轻描淡写 。 在实践中 , 通过 UDP 传输数据是相当可靠的 , 只有在通信高度强调绝对可靠性时才应该放弃使用这种模型 。 除此之外 , UDP 在大多数情况下都非常有效 , 应出于所有实际原因使用 。
Java URI 类
Java 有另一个类 , 称为 URI(统一资源标识符) 。URI 是标识资源的标准方法 。 它类似于 URL 类;实际上 , URL 是 URI 类的一个子集 。 从概念上讲 , 除了标识 URI 所用的资源之外 , URL 还使我们能够定位资源 。 这意味着所有的 URL 都是 URI , 但反之则不然 。 因此 , 有了这个想法 , 在 Java 中选择合适的类是不是很困难?无法决定选择什么 - URI 或 URL?没有更多的困惑 。