深大计算机网络实验四—— Socket网络编程

本文详细介绍了使用Java进行Socket网络编程的三个实验,包括获取本机和网站IP地址、TCP/UDP通信以及TCP文件传输。通过实验步骤,展示了如何使用InetAddress、URL、Socket和ServerSocket等类实现C/S通信、数据报聊天功能和文件传输。
摘要由CSDN通过智能技术生成

目录

实验内容

实验步骤

实验一

1.获取本机IP地址

2. 获取指定网站IP地址

3. 使用URL类下载网页并统计大小

实验二

        1.使用TCP连接和Socket类实现C/S通信

        2.使用UDP连接来编写数据报通信程序

实验三

1.​​​​​​​利用TCP连接实现文件传输


实验内容

    1. 使用InetAddress类的方法获取本地机的名称和IP地址。
    2. 使用InetAddress类的方法获取网站www.csdn.net的IP地址,如果存在多个IP地址,要求全部返回。
    3. 使用URL类下载深圳大学首页http://www.szu.edu.cn,并统计下载得到网页文件的大小
  1.  
    1. 利用Socket类和ServerSocket类编写一个C/S程序,实现C/S通信。
    2. 编写一数据报通信程序,实现简单的聊天功能。
  2.  
    1. 利用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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anakin Skywalker RM 00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值