模拟时间服务器,建立udp接收端和发送端,发送端发送当前时间.接收端接收时间并在控制台显示.

解决方案 »

  1.   

    client:
    package com.cn.socket;import java.io.ByteArrayOutputStream;
    import java.io.DataOutputStream;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;
    import java.util.Date;public class UDPClient {
    public static void main(String[] args) throws Exception {
    long n = 10000L;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutputStream dos = new DataOutputStream(baos);
    dos.writeLong(n);  
                    //发送时间
    byte[] buf = ((new Date()).toString()).getBytes();
    DatagramPacket dp = new DatagramPacket(buf,buf.length, 
    new InetSocketAddress("127.0.0.1",4444));
    DatagramSocket ds = new DatagramSocket(888);
    ds.send(dp);

    System.out.println("over!");
    }
    }
    server:package com.cn.socket;import java.io.BufferedReader;
    import java.io.ByteArrayInputStream;
    import java.io.InputStreamReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;public class UDPServer {
    public static void main(String[] args) throws Exception {
    byte[] buf = new byte[1024];
    DatagramPacket dp = new DatagramPacket(buf, buf.length);
    DatagramSocket ds = new DatagramSocket(4444);
    while (true) {
    ds.receive(dp);
    ByteArrayInputStream bais = new ByteArrayInputStream(buf);
    BufferedReader br = new BufferedReader(new InputStreamReader(bais));
                            String str = br.readLine().trim();//时间的字符串
    System.out.println(str);
    }
    }
    }
    楼主不要忘了结贴给分哦!