集册 Java实例教程 UDP时间客户端

UDP时间客户端

欢马劈雪     最近更新时间:2020-01-02 10:19:05

326
UDP时间客户端



import java.io.IOException;// from nowjava.com

import java.net.DatagramSocket;

import java.net.InetSocketAddress;

import java.nio.ByteBuffer;

import java.nio.ByteOrder;

import java.nio.channels.DatagramChannel;

import java.util.Date;


public class UDPTimeClient {


    public static void main(String[] args) throws IOException {

        DatagramChannel channel = DatagramChannel.open();

        DatagramSocket socket = channel.socket();
        /*
        时 代 J a v a 公 众 号 - N o w J a v  a . c o m 提供
        */

        socket.setSoTimeout(5000);

        InetSocketAddress server = new InetSocketAddress("time.nist.gov",

                37);

        ByteBuffer buffer = ByteBuffer.allocate(1024);

        buffer.order(ByteOrder.BIG_ENDIAN);


        buffer.clear();

        buffer.put((byte) 65);

        buffer.flip();


        channel.send(buffer, server);


        buffer.clear();

        channel.receive(buffer);

        buffer.flip();


        int size = buffer.capacity();

        byte[] receviedData = new byte[size];

        System.arraycopy(buffer.array(), 0, receviedData, 0, size);


        long differBtw = 2208988800L;

        long secondsSince1900 = 0;

        for (int i = 0; i < 4; i++) {

            secondsSince1900 = (secondsSince1900 << 8)

                    | (receviedD
展开阅读全文