Witam.
Pisze prstego klienta NTP (w obecnej chwili dokladniej RDATE).Napisalem cos takiego:
InetAddress remote = InetAddress.getByName("153.19.250.123");
int port = 37;
DatagramSocket ntp = new DatagramSocket();
ntp.connect(remote, port);
System.out.print(ntp.isConnected() + "\n");
byte[] sendBuf = new byte [4];
byte[] recvBuf = new byte [4];
int length = sendBuf.length;
DatagramPacket sendPacket = new DatagramPacket(sendBuf, length, remote, port);
ntp.send(sendPacket);
DatagramPacket recvPacket = new DatagramPacket(recvBuf, length);
ntp.receive(recvPacket);
//System.out.print(recvPacket.getData() + "\n");
System.out.print("Wysłano: \n");
for (int i = 0; i < sendBuf.length; i++)
{
System.out.print(sendBuf[i] + " ");
}
System.out.print("\nObedrano: \n");
for (int i = 0; i < recvBuf.length; i++)
{
System.out.print(recvBuf[i] + " ");
}
Wynik dzialania to :
init:
deps-jar:
compile:
run:
true
Wysłano:
0 0 0 0
Obedrano:
-55 -107 -126 -69 // TUTAJ ODBIERAM TO CO TRZEBA - 32 bitowa liczba podzielona na 4 bajty
Jak zamieniam ja na jedna liczbe binarna a potem na jedna dziesietna to i tak wychodzi mi lipa - zgodnie z RFC 868 rok 1929 :) czy ktos moglbym mi podpowiedziec co robie zle, albo co musze dorobic?
pozdrawiam
trynisz