jnetperf/src/main/java/biz/nellemann/jperf/App.java

61 lines
1.6 KiB
Java

/*
* This Java source file was generated by the Gradle 'init' task.
*/
package biz.nellemann.jperf;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import java.util.concurrent.Callable;
@Command(name = "jperf", mixinStandardHelpOptions = true, version = "0.1",
description = "Network performance measurement tool.")
public class App implements Callable<Integer> {
@Override
public Integer call() throws Exception { // your business logic goes here...
// Start server
UdpServer udpServer = new UdpServer();
udpServer.start();
int sequence = 0;
// Start client and send some messages
UdpClient udpClient = new UdpClient();
// Start datagram
Datagram datagram = new Datagram(DataType.HANDSHAKE.getValue(), 64, sequence++);
udpClient.send(datagram);
// TODO: Wait for ACK
// Data datagrams ...
for(int i = 0; i < 10; i++) {
Thread.sleep(1000);
datagram = new Datagram(DataType.DATA.getValue(), 64, sequence++);
udpClient.send(datagram);
}
// End datagram
datagram = new Datagram(DataType.END.getValue(), 64, sequence++);
udpClient.send(datagram);
udpClient.close();
Thread.sleep(1000);
return 0;
}
// this example implements Callable, so parsing, error handling and handling user
// requests for usage help or version help can be done with one line of code.
public static void main(String... args) {
int exitCode = new CommandLine(new App()).execute(args);
System.exit(exitCode);
}
}