- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用 UDP协议的 Socket 网络程序设计 java编程
实验四 使用 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
文档评论(0)