实验八 网络编程基础
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 {