资源简介
广东工业大学计算机网络课程设计的编程实现基于UDP的ping(java)
代码片段和文件信息
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.util.Date;
public class PingClient
{
public static void main(String[] args) throws Exception
{
String address = args[0]; //从命令行获得server ip地址
int port = new Integer(args[1]); //从命令行获得server port
Long[] rtt = new Long[10]; //用于存储rtt,用于最后的统计
for (int i = 1; i <= 10; i++) //模拟发送10条请求
{
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss.SS“); //时间戳格式
String sentence = “head: request “ + i + “ \n“ //模拟用的请求数据
+ “playload: PingUDP SequenceNumber:“ + i + “ TimeStamp:“
+ sdf.format(new Date()) + “\n“;
DatagramSocket clientSocket = new DatagramSocket(); //生成client端socket实例
InetAddress IPAddress = InetAddress.getByName(address); //生成ip地址实例
byte[] sendData = new byte[1024]; //用于接收数据的byte数组
byte[] receiveData = new byte[1024]; //用于发送数据的byte数组
sendData = sentence.getBytes(); //将请求数据转换到byte数组
DatagramPacket sendPacket = new DatagramPacket(sendData sendData.length IPAddress port); //生成发送数据包实例
Date sendBefore = new Date(); //记录发送前时间
clientSocket.send(sendPacket); //发送到server端
DatagramPacket receivePacket = new DatagramPacket(receiveData receiveData.length); //生成接收数据包实例
clientSocket.receive(receivePacket); //接收从server返回的数据包
Date receiveAfter = new Date(); //记录接收后的时间
String modifiedSentence = new String(receivePacket.getData()); //从byte数组转换成String
rtt[i - 1] = receiveAfter.getTime() - sendBefore.getTime(); //计算rtt
System.out.println(“rtt:“ + rtt[i - 1]); //显示rtt
System.out.println(modifiedSentence); //显示从server返回的数据
clientSocket.close(); //关闭socket
}
//统计出平均rtt最大rtt和最小rtt
long sumRtt = 0;
long maxRtt = 0;
long minRtt = rtt[0];
for (int i = 0; i < 10; i++)
{
if (rtt[i] > maxRtt)
{
maxRtt = rtt[i];
}
if (rtt[i] < minRtt)
{
minRtt = rtt[i];
}
sumRtt += rtt[i];
}
System.out.println(“average rtt: “ + sumRtt / 10 + “ millisecond“);
System.out.println(“max rtt: “ + maxRtt);
System.out.println(“min rtt: “ + minRtt);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2343 2014-01-07 09:58 计算机网络\PingClient.class
文件 2561 2014-01-05 11:46 计算机网络\PingClient.java
文件 1392 2014-01-07 09:58 计算机网络\PingServer.class
文件 1697 2014-01-05 11:46 计算机网络\PingServer.java
文件 594732 2014-10-26 14:46 计算机网络\计算机网络课设.doc
- 上一篇:java 会员管理系统
- 下一篇:java简单文件管理系统源码
评论
共有 条评论