Frage

Ich bin nur zu lernen, wie in Java und dem ersten einfachen Beispiel immer die Zeit von einem NTP-Server zu tun Vernetzung hält einen Connect werfen. Ich werde den Code kopieren und einfügen, aber ich habe das Gefühl, es ist etwas nicht Code verwandt sein muss, da dieser Code aus einem Buch kam.

import java.io.*;
import java.net.*;

public class AskTime {

    public static void main(String a[]) throws Exception {
        if(a.length != 1) {
            System.out.println("your lame");
            System.exit(0);
        }

        String machine = a[0];
        final int daytimeport = 13;
        Socket so = new Socket(machine,daytimeport);
        BufferedReader br = new BufferedReader(new InputStreamReader(so.getInputStream() ) );
        String time = br.readLine();
        System.out.printf("%s says it is %s %n", machine, time);
    }
}

Der Befehl Ich verwende dies auszuführen ist:

java AskTime us.pool.ntp.org

Update: Nach msaeed Rat Lesen ich den Port 123 geändert und jetzt wird erzählt wird Verbindung abgelehnt statt Verbindung abgelaufen. Ich denke also, msaeed richtig ist, hat jemand eine Idee, was sonst muss ich kommunizieren, um eine Zeit erhalten?

War es hilfreich?

Lösung

So anscheinend verwendet dieser Code die alten DAYTIME Protokoll , die Port verwendet 13. NTP Protokoll Port verwendet 123 und erfordert ein bisschen mehr Kommunikation. Viele der NTP Server gestoppt DAYTIME Abfragen zu unterstützen.

Das NTP-Projekt stellt einen Beispielcode für einen NTP Client in Java hier .

Andere Tipps

msaeed ist richtig. oder wählen Sie andere von Commons Net . In der Tat, sollten Sie an der Quelle aussehen oder so - Commons Net implementiert ziemlich viele Netzwerkprotokolle

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top