You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package perf;
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketTimeoutException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date;
class UDPPerfClient { public static void main(String argv[]) throws Exception { String hostname = ""; int udpPort = 36039; DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
//System.out.println("Bitte geben Sie die Server-Adresse ein: ");
//hostname = inFromUser.readLine();
hostname = "127.0.0.1"; InetAddress serverAddress = InetAddress.getByName(hostname);
while (true) { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Bitte geben Sie die Anzahl zu �bertragender Megabytes ein: "); Long numberOfMegabytes = new Long(inFromUser.readLine()); //Long number = (long)1;
DatagramSocket clientSocket = new DatagramSocket(); clientSocket.setSoTimeout(5000);
long timestampStart = System.currentTimeMillis(); System.out.println("Zeit vor Versand = " + timestampStart + " ms, " + df.format(new Date(timestampStart))); byte[] outbuffer = (new String(numberOfMegabytes + "\n")).getBytes(); DatagramPacket sendPacket = new DatagramPacket(outbuffer, outbuffer.length, serverAddress, udpPort); clientSocket.send(sendPacket); if (numberOfMegabytes == 0) { break; }
long totalBytesReceived = 0; while (true) { byte[] receiveData = new byte[1024]; DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); try { clientSocket.receive(receivePacket); } catch (SocketTimeoutException ste) { System.out.println("Timeout"); break; }
String receivedString = new String(receiveData); if (receivedString.contains("done")) { System.out.println("Ende der �bermittlung erkannt."); break; } else { totalBytesReceived += receivePacket.getLength(); System.out.println(totalBytesReceived + " Bytes insgesamt empfangen."); }
} System.out.printf("Insgesamt %d Bytes von %d (%d MB) empfangen.\n", totalBytesReceived - 4, (1024 * 1024) * numberOfMegabytes, numberOfMegabytes); clientSocket.close(); } } }
|