資源簡介
廣東工業大學計算機網絡課程設計的編程實現基于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?=?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簡單文件管理系統源碼
評論
共有 條評論