forked from srieger/verteilte-systeme-bsc-ai-examples
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.
35 lines
1.3 KiB
35 lines
1.3 KiB
package verteiltesysteme.socket.timecounter;
|
|
|
|
import java.net.DatagramPacket;
|
|
import java.net.DatagramSocket;
|
|
import java.net.InetAddress;
|
|
import java.text.DateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
|
|
class UDPTimeCounterServer {
|
|
private static long counter = 0;
|
|
|
|
public static void main(String args[]) throws Exception {
|
|
int udpPort = 36038;
|
|
@SuppressWarnings("resource")
|
|
DatagramSocket serverSocket = new DatagramSocket(udpPort);
|
|
byte[] receiveData = new byte[1024];
|
|
byte[] sendData = new byte[1024];
|
|
DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
|
|
|
|
while (true) {
|
|
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
|
|
serverSocket.receive(receivePacket);
|
|
long number = new Long(new String(receivePacket.getData(), 0, receivePacket.getLength()));
|
|
|
|
InetAddress IPAddress = receivePacket.getAddress();
|
|
int clientSrcPort = receivePacket.getPort();
|
|
|
|
counter += number;
|
|
sendData = (Long.toString(counter) + " Zeit: " + System.currentTimeMillis() + " " + df.format(new Date(System.currentTimeMillis()))).getBytes();
|
|
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, clientSrcPort);
|
|
serverSocket.send(sendPacket);
|
|
}
|
|
}
|
|
}
|