文档详情

使用 UDP协议的 Socket 网络程序设计 java编程.doc

发布:2017-11-17约9.17千字共10页下载文档
文本预览下载声明
实验四 使用 UDP协议的 Socket 网络程序设计 及实验步骤详解!! 实验目的:掌握 Socket 通讯机制,掌握 DataGramSocket 和 DataGramPacket类和相关方法。 实验要求:通过Socket 编程,掌握网络应用程序的开发方法;掌握利用Java提供的基本组件进行网络传输;掌握 Java 提供的多线程机制,异常处理机制和低层对协议的通信机制,通过 Socket 编程,掌握网络应用程序的开发方法。 1、 import .*; public class DatagramPacketExa { public static void main(String[] args) throws SocketException { String s = This is a test.; byte[] data = s.getBytes(); try { InetAddress ia = InetAddress.getByName(); int port = 7; SocketAddress sa=new InetSocketAddress(ia,port); DatagramPacket dp = new DatagramPacket(data, data.length, ia, port); DatagramPacket dp1= new DatagramPacket(data, data.length, sa); System.out.println(This packet is addressed to: + dp.getAddress()); 分别调用数据报dp的方法, dp.getData(), dp.getOffset(), dp.getLength(),getLength().结果是什么? } catch (UnknownHostException e) { System.err.println(e); } } } 调试并输出结果。 2、编写一个能扫描出本地机所有udp端口的程序。 3、建立三个类,然后运行服务器端和客户端。当客户端启动后,服务器端得到客户端的地址和端口信息,同时客户端会收到客户端发送的reply信息。 类DataGramHelper import .*; public class DataGramHelper { //定义一个数据包 ① public StringtoDatagram(String s, InetAddress ip, int port) { // 将String容纳到Byte数组里 ② byte[] buf = byte[s.length() + 1]; // 调整编码 buf = s.getBytes(); // 返回构造对象 ③ 选择一条语句插到横线空白处,注意要改造一下 DatagramPacket(byte[] buf, int length) 构建数据报包,接收length长度的包并放入buf。 DatagramPacket(byte[] buf, int length, InetAddress address, int port) 构建数据报包,发送length长度的包到address指定的主机的port端口。 return new } public String DatagramtoString(DatagramPacket p) { return new String(p.getData(), 0, p.getLength()); } } 客户端代码 import java.io.*; import java.lang.*; import .*; public class UDPClient { public static void main(String args[]) { // UDP Socket DatagramSocket udpCliSocket; DatagramPacket udpSendPacket; DatagramPacket udpReceivePacket; // 定义报文的工具类 DataGramHelper datapacketHelper = new DataGramHelper(); // 报文字节数组 byte pack
显示全部
相似文档