实验八 网络编程基础 下载本文

内容发布更新时间 : 2024/5/10 7:06:02星期一 下面是文章的全部内容请认真阅读。

实验八 网络编程基础

1.实验目的

(1)掌握Socket通信。 (2)掌握UDP通信

2.实验内容

实验题1 使用InetAddress类的方法获取http://www.nwsuaf.edu.cn/的主机的IP地址;获取本地机的名称和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()) ; System.out.println(\本机的名称\+locAdd.getHostName());

运行结果如下:

实验题2 使用URL类下载西北农林科技大学首页http://www.nwsuaf.edu.cn/,并统计下载得到网页文件的大小。

具体代码如下:

package demo;

import java.net.URL ;

import java.net.URLConnection ; import java.io.InputStream ; import java.util.Scanner ;

public class URLConnectionDemo { }

public static void main(String[] args) throws Exception{ }

URL url = new URL(\) ;

URLConnection urlCon = url.openConnection() ; // 建立连接 InputStream input = url.openStream() ; Scanner scan = new Scanner(input) ; scan.useDelimiter(\) ; while(scan.hasNext()){ }

System.out.println(\内容大小:\ + urlCon.getContentLength()) ;

System.out.println(scan.next()) ;

实验题3 利用Socket类和ServerSocket类编写一个C/S程序,实现C/S通信。 客户端向服务器端发送Time命令,服务器端接受到该字符串后将服务器端当前时间返回给客户端;客户端向服务器端发送Exit命令,服务器端向客户端返回“Bye”后退出。

[基本要求] 编写完整程序;两人一组,一个作为服务器端,另一人作为客户端。服务器端和客户端都需要打印出接受到的消息和发出的命令。

具体的程序代码如下:

package demo;

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import java.util.Calendar;

public class server {

public static void main(String[] args) {

try {

ServerSocket server = new ServerSocket(9527); System.out.println(\服务器启动完毕\); Socket socket = server.accept();

}

}

System.out.println(\创建客户连接\);

InputStream input = socket.getInputStream();

InputStreamReader isreader = new InputStreamReader(input); BufferedReader reader = new BufferedReader(isreader); while (true) { }

reader.close(); isreader.close(); input.close(); socket.close(); server.close();

String str = reader.readLine(); if (str.equals(\)) { }

if (str.equals(\)) { }

String s =

System.out.println(\服务器当前的时间为:\ + s); System.out.println(\); break;

Calendar.getInstance().getTime().toString();

} catch (IOException e) { }

e.printStackTrace();

package demo;

import java.io.IOException; import java.io.OutputStream;

import java.net.UnknownHostException; import java.net.Socket;

public class Client {

public static void main(String[] args) {

try {