当前位置:网站首页 > 技术博客 > 正文

java基于nio网络编程代码



网络编程指的是编写跨多个设备(计算机)执行的程序,设备使用网络彼此连接。

J2SE API的包中包含一组类和接口,它们提供低级别的通信详细信息,开发者可编写专注于解决手头问题的程序。

包提供对两种常见网络协议的支持 -

  • TCP - TCP代表传输控制协议,它允许两个应用程序之间的可靠通信。TCP通常用于Internet协议,称为。
  • UDP - UDP代表用户数据报协议,这是一种无连接协议,允许在应用程序之间传输数据包。

本章为这两个协议准备了两个示例,以便可以更好的理解 -

  • 套接字编程 - 它是网络中使用最广泛的概念,在本节中将进行非常详细的解释。
  • URL处理 - 它将在单独一节中详细介绍。单击此处以了解Java语言中的URL处理。

套接字是使用TCP提供通信机制在两台计算机之间进行通信。客户端程序在通信的末尾创建一个套接字,并尝试将套接字连接到服务器。

建立连接后,服务器会在通信结束时创建一个套接字对象。客户端和服务器现在可以通过写入和读取套接字进行通信。

类表示一个套接字,类为服务器程序提供了一种监听客户端并与它们建立连接的机制。

使用套接字在两台计算机之间建立TCP连接时,会发生以下步骤 -

  • 服务器实例化对象,表示要在哪个端口号上进行通信。
  • 服务器调用S类的方法。此方法等待,直到客户端连接到给定端口上的服务器。
  • 在服务器等待之后,客户端实例化对象,指定要连接的服务器名称(IP地址)和端口号。
  • 类的构造函数尝试将客户端连接到指定的服务器和端口号。如果建立了通信,则客户端现在具有能够与服务器通信的对象。
  • 在服务器端,方法返回对连接到客户端套接字的服务器上的新套接字的引用。

建立连接后,可以使用I/O流进行通信。每个套接字都有一个和一个。客户端的连接到服务器的,客户端的连接到服务器的。

TCP是双向通信协议,因此可以同时跨两个流发送数据。以下是套接字实现类的方法 -

服务器应用程序使用类来获取端口并侦听客户端请求。

类有四个构造函数 -

编号 构造函数 描述 1 尝试创建绑定到指定端口的服务器套接字。如果端口已被另一个应用程序绑定,则会发生异常。 2 与前上面构造函数类似,参数指定要在等待队列中存储的传入客户端的数量。 3 与前一个构造函数类似,参数指定要绑定的本地IP地址。用于可能具有多个IP地址的服务器,允许服务器指定哪个IP地址接受客户端请求。 4 创建未绑定的服务器套接字。使用此构造函数时,在准备绑定服务器套接字时使用方法。

如果构造函数没有抛出异常,则表示应用程序已成功绑定到指定的端口并准备好进行客户端请求。

以下是类的一些常用方法 -

编号 方法 描述 1 返回服务器套接字正在侦听的端口。如果在构造函数中传入作为端口号并让服务器自己打开端口,则此方法很有用。 2 等待传入的客户端。假设已使用方法设置超时值,此方法将阻塞,直到客户端连接到指定端口上的服务器或套接字超时。否则,此方法无限期地阻塞。 3 设置服务器套接字在期间等待客户端的时间的超时值。 4 将套接字绑定到对象中的指定服务器和端口。如果已使用无参数构造函数实例化,请使用此方法。

当调用时,在客户端连接之前不会返回。客户端连接后,在未指定的端口上创建一个新的,并返回对此新的引用。客户端和服务器之间现在存在TCP连接,并且可以开始通信。

类表示客户端和服务器用于相互通信的套接字。客户端通过实例化一个来获取对象,而服务器从方法的返回值获取对象。

类有五个构造函数,客户端用它们连接到服务器 -

编号 方法 描述 1 此方法尝试连接到指定端口上的指定服务器。如果此构造函数未引发异常,则连接成功并且客户端连接到服务器。 2 此方法与前一个构造函数相同,只是主机由对象表示。 3 连接到指定的主机和端口,在指定地址和端口的本地主机上创建套接字。 4 此方法与前一个构造函数相同,只是主机由对象表示。 5 创建一个未连接的套接字。使用方法将此套接字连接到服务器。
编号 方法 描述 1 将套接字连接到指定的主机。仅当使用无参数构造函数实例化时才需要此方法。 2 返回此套接字连接到的另一台计算机的地址。 3 返回套接字在远程计算机上绑定的端口。 4 返回套接字在本地计算机上绑定的端口。 5 返回远程套接字的地址。 6 返回套接字的输入流,输入流连接到远程套接字的输出流。 7 返回套接字的输出流。输出流连接到远程套接字的输入流。 8 关闭套接字,此对象不再能够再次连接到任何服务器。

类表示Internet协议(IP)地址。以下是执行套接字编程时需要的一些重要方法 -

编号 方法 描述 1 给定原始IP地址返回对象。 2 根据提供的主机名和IP地址创建InetAddress。 3 根据主机名称确定主机的IP地址。 4 返回文本表示中的IP地址字符串。 5 获取此IP地址的主机名。 6 返回本地主机。 7 将此IP地址转换为。

套接字客户端示例

以下代码是一个客户端程序,它通过使用套接字连接到服务器并发送问候语,然后等待响应。

 

套接字服务器示例

以下程序是服务器应用程序的示例,该应用程序使用类来侦听由命令行参数指定的端口号上的客户端 -

 

编译客户端和服务器,然后按如下方式首先启动服务器 -

 

接下来运行客户端程序 -

 

上一篇: Java异常处理 下一篇: Java快速入门

版权声明


相关文章:

  • 键值对之间用什么符号连接2025-07-14 09:30:00
  • linux中ps是什么意思2025-07-14 09:30:00
  • orm框架的基本原理2025-07-14 09:30:00
  • 自动化测试视频教程2025-07-14 09:30:00
  • fstream ifstream2025-07-14 09:30:00
  • linux sar日志2025-07-14 09:30:00
  • opencv rgb顺序2025-07-14 09:30:00
  • linux报错cmake_c_compiler2025-07-14 09:30:00
  • java hashset hashcode2025-07-14 09:30:00
  • dbn神经网络2025-07-14 09:30:00