java - 连接到 NTP 服务器始终失败 (Java)

标签 java networking ntp

我刚刚学习如何用 Java 进行网络连接,第一个从 NTP 服务器获取时间的简单示例不断抛出 ConnectException。我将复制并粘贴代码,但我感觉它一定是与代码无关的东西,因为该代码来自一本书。

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);
    }
}

我用来执行此操作的命令是:

java AskTime us.pool.ntp.org

更新:阅读 msaeed 的建议后,我将端口更改为 123,现在被告知连接被拒绝,而不是连接超时。所以我认为 msaeed 是对的,有人知道我还需要沟通什么才能收到时间吗?

最佳答案

显然这段代码使用了旧的 DAYTIME protocol使用端口 13。NTP protocol使用端口 123,需要更多的通信。许多 NTP 服务器停止支持 DAYTIME 查询。

NTP 项目为 Java 中的 NTP 客户端提供了示例代码 here .

关于java - 连接到 NTP 服务器始终失败 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1225391/

相关文章:

linux - 如何进行增量时间跳跃以避免数据丢失

java - Oracle 10g 上传图片时出现空指针异常

networking - ARP报文中的源MAC地址和封装时指定的源MAC地址有什么区别?

Java:如何将 MySQL DECIMAL(39,0) IP 地址转换为字符串

c++ - C++ 中是否有用于远程进程间通信的 API?

logic - NTP 时钟纪律如何工作?

java - 简单的 android 和 ASP.NET 组合

java - 条纹的嵌套布局问题

java - SpriteBatch 和 ShapeRenderer 在 libgdx 中绘制顺序

c - 如何在 esp-idf 中从 NTP 服务器重新同步时间?