分别编写基于TCP和UDP协议的客户 和 服务器 程序,实现如下功能总结java中关于网络编程的基本思路。
   1)服务器端提供服务:显示服务器的日期和时间并能显示所相应的客户端的ip地  址、时间和日期  (要求:多线程)
   2)客户端 通过输入服务器的地址和端口参数  可以显示 服务器的日期和时间网络课的一道作业,因为我没学过java,所以对这个题一点思路也没有,有没有高手给点思路,譬如系统时间应该怎样显示等等,很着急,谢谢了

解决方案 »

  1.   

    你没学过java,为什么要用java来做呢?
      

  2.   

    老师责令用java做,但是他不知道大家的java基础
      

  3.   

    希望高手能帮帮我,现在准备期末考试实在没时间学了,痛苦ing~~~
      

  4.   

    说实话  比较简单,建议好好学习java
      

  5.   

    用你会的语言写一个,写好了,我给你翻译成Java,直接站内给我短消息。
      

  6.   

    基于:UDP
    服务器端:
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.text.DateFormat;public class TimeServer{  protected static DatagramSocket socket = null;
      public static void main(String[] args)
      {
        
        
        while(true){
          try{
            socket = new DatagramSocket(5555);
            byte[] buf = new byte[128];
            DatagramPacket packet= new DatagramPacket(buf,buf.length);
            socket.receive(packet);
            String dString = null;
            Date d = new Date();
            dString = DateFormat.getDateTimeInstance().format(d);
            buf = dString.getBytes();
            InetAddress address = packet.getAddress();
            int port = packet.getPort();
            packet = new DatagramPacket(buf,buf.length,address,port);
            socket.send(packet);
            System.out.println("Requiring from: "+address.getHostAddress());
          }
          catch(IOException e){e.printStackTrace();}finally{socket.close();}
        }
      }
    }
    客户端:
    import java.io.*;
    import java.net.*;
    import java.util.*;public class TimeClient
    {
     public static void main(String[] args){
      if (args.length!=1)
      {
       System.out.println("Usage:java TimeClient<hostname>");
       return;
      }
      try{
      DatagramSocket socket= new DatagramSocket();
      byte[] buf = new byte[128];
      InetAddress address = InetAddress.getByName(args[0]);
      DatagramPacket packet = new DatagramPacket(buf,buf.length,address,5555);
      socket.send(packet);
      packet = new DatagramPacket(buf,buf.length);
      socket.receive(packet);  String received = new String(packet.getData());
      System.out.println("Net time is :"+received.trim());
      socket.close();
      }catch(IOException e){e.printStackTrace();}
     }
    }
      

  7.   

    没使用多线程,晚上给你写基于TCP的
      

  8.   

    基于TCP:服务器端:
    import java.net.*;
    import java.io.*;
    import java.util.*;
    import java.text.DateFormat;public class TimeServer{
     public static void main(String[] args){
       ServerSocket s=null;
       Socket s1;
       Date d = new Date();
       String sendString=DateFormat.getDateTimeInstance().format(d);;   OutputStream s1out;
       DataOutputStream dos;   try{
        s=new ServerSocket(5555);
       }catch(IOException e){}   while(true){
         try{
           System.out.println("等待连接....");
           s1=s.accept();
           InetAddress address= s1.getInetAddress();
           System.out.println("发现来自"+address.getHostAddress()+"的连接,发送消息....");
           

           s1out=s1.getOutputStream();
           dos =new DataOutputStream(s1out);
           dos.writeUTF(sendString);
           System.out.println("发送成功");
           s1out.close();
           s1.close();
         }catch(IOException e){}   }
     }
    }
    客户端:
    import java.net.*;
    import java.io.*;
    public class TimeClient{
      public static void main(String[] args) throws IOException{
        int c;
        Socket s1;
        InputStream s1In;
        DataInputStream dis;
        InetAddress address = InetAddress.getByName(args[0]);
        s1= new Socket(address,5555);
        s1In=s1.getInputStream();
        dis=new DataInputStream(s1In);
        String st=new String(dis.readUTF());
        System.out.println("返回服务器当前时间为:"+st);
        s1In.close();
        s1.close();
      }
    }