- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 补充案例
使用InetAddress类获取与IP信息
一、案例描述
考核知识点
编号名称:InetAddress类
练习目标
掌握InetAddress类的相关API
掌握如何使用InetAddress类中的方法获取计算机的主机名和IP地址等信息。
需求分析
InetAddress类中提供了一系列与IP地址相关的方法,利用这些方法可以获取到指定计算机的主机名、IP地址以及连接状态等信息。为了让初学者掌握InetAddress类中常用方法的使用,本案例将针对如何通过InetAddress类中的方法获取计算机的IP地址、主机名等功能进行演示。
设计思路(实现原理)
编写Example01类。
在main()方法中,通过InetAddress类的静态方法getLocalHost()创建实例对象,并通过该对象完成获取计算机主机名和计算机IP地址的操作。
分别将获取到的主机名和IP地址输出。
二、案例实现
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Example01 {
public static void main(String[] args) throws UnknownHostException {
//获取本机的IP地址
InetAddress address = InetAddress.getLocalHost();
//以字符串形式返回IP地址
String ip = address.getHostAddress();
//获取此IP地址的主机名
String name = address.getHostName();
System.out.println(本机的ip地址是:+ip);
System.out.println(本机的hostName是:+name);
}
}
运行结果如图10-1所示。
运行结果
三、案例总结
1、InetAddress类用于封装一个IP地址,并提供了一系列与IP地址相关的方法,其中,getByName(String host)方法表示获取指定主机的IP地址,常用于获取远程计算机的IP信息,isReachable(int timeout)方法表示判断指定的时间内IP地址是否可以到达,常用于测试网络是否通畅。
2、InetAddress类的getHostName()方法是用来获取IP地址的主机名,而为什么有的时候获取到的不是主机名而是域名?
UDP网络程序
一、案例描述
考核知识点
编号名称:DatagramPacket类和DatagramSocket类
练习目标
掌握DatagramPacket类和DatagramSocket类的作用
掌握如何使用DatagramPacket类和DatagramSocket类通过编写简单的UDP程序。
需求分析
DatagramPacket用于封装UDP通信中发送或者接收的数据,DatagramSocket类用于发送和接收DatagramPacket数据包。为了让初学者掌握这两个类的作用,本案例将通过DatagramPacket类和DatagramSocket类实现简单的数据通信,并通过观察两个命令行窗口中数据输出的先后顺序,从而掌握UDP网络程序中接收端和发送端的执行原理。
设计思路(实现原理)
编写数据接收类ReceiveDemo,在ReceiveDemo类中创建接收端的Socket服务对象,并依次编写创建数据包、调用接收方法、解析数据包并向命令行输出内容,释放资源等操作。
编写数据发送类SendDemo,在SendDemo类中创建发送端的Socket服务对象,并依次编写创建数据包,打包数据、发送数据、释放资源等操作。
依次执行ReceiveDemo和SendDemo类,观察命令行输出变化。
二、案例实现
UDP网络程序中接受数据端,代码如下:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class ReceiveDemo {
public static void main(String[] args) throws IOException {
// 创建接收端Socket服务对象
DatagramSocket ds = new DatagramSocket(12306);
// 创建数据包(接收容器)
byte[] bys
文档评论(0)