文档库 最新最全的文档下载
当前位置:文档库 › 实验11 Java网络编程

实验11 Java网络编程

实验11  Java网络编程
实验11  Java网络编程

实验14 Java网络编程

一、实验目的

了解网络编程的概念,了解URL通信、Socket通信和UDP通信的基本知识。

二、实验要求

1.掌握网络编程的基本概念,如客户机、服务器、协议、端口。

2.掌握https://www.wendangku.net/doc/bb11662319.html,包中常用的网络编程工具类的功能和使用。

3.掌握Applet获取网络资源的方法。

4.掌握流式Socket服务器和客户机编程的基本概念和方法。

三、实验内容

1.测试下列程序,查看运行结果,再修改为浙江财经学院网址。

package urlpack;

import java.io.*;

import https://www.wendangku.net/doc/bb11662319.html,.*;

public class TestURL {

public static void main(String[] args) {

int n;

byte[] b = new byte[100];

StringBuffer area = new StringBuffer();

URL url = null;

InputStream in = null;

try {

url = new URL("https://www.wendangku.net/doc/bb11662319.html,");

in = url.openStream();

while ((n = in.read(b)) != -1) {

String s = new String(b, 0, n);

area.append(s);

}

} catch (IOException e) {

System.out.println(e);

}

System.out.println(area);

}

}

2. 测试下列程序,查看运行结果(编写接收用户输入的一个主机名,通过网络找的其IP地址打印到屏幕上)

import java.io.*;

import https://www.wendangku.net/doc/bb11662319.html,.*;

import java.util.*;

public class InetAddressText {

public static void main(String[] args) {

InetAddress iad = null;

Scanner sc = new Scanner(System.in);

System.out.print("输入网站域名:");

String s = sc.nextLine();

try {

iad = InetAddress.getByName(s);

System.out.println("网站地址:" + iad.getHostAddress());

System.out.println("网站域名:" + iad.getHostName());

System.out.println("本地域名及地址:" +

InetAddress.getLocalHost());

} catch (UnknownHostException e) {

System.out.println(e);

}

}

}

3.利用Socket套接字通信机制模拟简单的聊天程序。测试方法:先两人一组,一个服务器端,另一人客户端;然后反之;最后,在一台机器上自己模拟两方聊天。提示:聊天程序输入、输出流最好用字符流。

4. 基于UDP数据报方式发送及接受信件。参考程序如下:

//1.接收端程序

package udppack;

import https://www.wendangku.net/doc/bb11662319.html,.*;

public class Recevier {

public static void main(String[] args) {

byte buffer[] = new byte[512];

DatagramPacket pack = null;

DatagramSocket mail_data = null;

try {

mail_data = new DatagramSocket(8888);

} catch (Exception e) {

}

pack = new DatagramPacket(buffer, buffer.length);

while (mail_data != null) {

try {

mail_data.receive(pack);

System.out.print("收到数据长度:" + pack.getLength());

System.out.println("\t收到数据来自:"+ pack.getAddress() + "\t端口:"+ pack.getPort());

String message = new String(pack.getData(), 0,

pack.getLength());

System.out.println("收到数据是:\n" + message);

} catch (Exception e) {

}

}

}

//2.发送端程序

package udppack;

import https://www.wendangku.net/doc/bb11662319.html,.*;

import java.io.*;

public class Sender {

public static void main(String[] args) {

byte buffer[] = new byte[512];

int port = 8888;

DatagramPacket data_pack = null;

DatagramSocket mail_data = null;

try {

InetAddress address = InetAddress.getByName("127.0.0.1");

System.out.println("数据报目标主机地址:" + address + " 数据报目标端口是:" + port);

mail_data = new DatagramSocket();

FileInputStream fin = new FileInputStream("c:/kk.html");

int n = 0;

while ((n = fin.read(buffer)) != -1) {

System.out.println("发送包");

data_pack = new DatagramPacket(buffer, n, address, 8888);

mail_data.send(data_pack);

}

} catch (Exception e) {

}

}

}

相关文档