目录
实验内容
-
- 使用InetAddress类的方法获取本地机的名称和IP地址。
- 使用InetAddress类的方法获取网站www.csdn.net的IP地址,如果存在多个IP地址,要求全部返回。
- 使用URL类下载深圳大学首页http://www.szu.edu.cn,并统计下载得到网页文件的大小
-
- 利用Socket类和ServerSocket类编写一个C/S程序,实现C/S通信。
- 编写一数据报通信程序,实现简单的聊天功能。
-
- 利用Socket类和ServerSocket类,编写一个C/S程序,实现网络文件传输。
实验步骤
实验一
1.获取本机IP地址
我们可以使用Java中的InetAddress类来获得本机地址,用getLocalHost函数将本机地址传输到建立的locAdd对象当中,并用对象调用getHostAddress和getHostName这两个函数来获取存取在locAdd中的本机IP地址和本机名称。
package demo;
import java.net.InetAddress ;
public class InetAddressDemo {
public static void main(String[] args)throws Exception {
InetAddress locAdd = null ;
locAdd = InetAddress.getLocalHost() ;
System.out.println("本机IP地址:"+locAdd.getHostAddress()); //获取本机的IP地址并打印
System.out.println("本机名称:"+locAdd.getHostName()); //获取本机的名称并打印
}
}
2. 获取指定网站IP地址
首先使用一个String类型的对象来存放网站名称。创建一个InetAddress的对象数组addresses,用于存放获取的所有IP地址。再使用getAllByName函数,来获取指定网站的所有IP地址,并且存放在addresses对象数组当中。最后输出。
package demo;
import java.net.InetAddress ;
public class InetAddressDemo2 {
public static void main(String[] args)throws Exception {
//获取网站www.baidu.com的IP地址
String host = "www.baidu.com";
InetAddress addresses [] = null;
addresses=InetAddress.getAllByName(host);
//获取网站www.csdn.net的IP地址
for (InetAddress address : addresses)
System.out.println(address);
host = "www.csdn.net";
addresses=InetAddress.getAllByName(host);
//获取网站www.csdn.net的IP地址
for (InetAddress address : addresses)
System.out.println(address);
}
}
3. 使用URL类下载网页并统计大小
使用URL类创建一个对象url,并且用构造函数写入要连接的网页地址。并且用URLConnection类创建一个对象urlconnect,用于与网站进行连接。再使用openConnection函数来建立连接。
使用FileOutStream类建立输出流,将获取的信息存储到外部文件——szu.html当中。建立输入流来接受url的信息。
使用read函数从网站中读取数据并用write函数写入到文件当中。最后使用File类来进行统计文件大小,使用file.length方法函数来获取文件大小。
public class URLConnectionDemo {
public static void main(String[] args) throws Exception{
URL url = new URL("http://www.szu.edu.cn") ;
URLConnection urlconnect;
urlconnect=url.openConnection();//使用URLConnection建立url连接
FileOutputStream fout=new FileOutputStream(new File("szu.html"));
InputStream input = url.openStream() ;
int a=0;
while(a>-1) {
a=input.read();
//System.out.println(a