こんにちは、日付オブジェクトをクライアントからサーバーに送信して比較できるようにするのに少し問題があります。したがって、基本的に私がやろうとしていることは次のとおりです。1)Dateオブジェクトを送信します2)それらの時間を比較します3)両方のマシンの平均時間を両方のマシンに設定します
これまでのところ、私はこれを行ってきました:
サーバ:
public class Server implements Runnable{
    private int port;
    private String name;
    private Date mydate = new Date();
    private Date date;
    public Server(int port, String name){
        this.port=port;
        this.name=name;
    }
    public synchronized void run(){
        while(true){
        try{
            method();
        }
        catch(Exception e){
            return;
        }
        }
    }
    public synchronized void method() throws Exception{
        long dates;
        long average=0;
        String[] values = new String[10];
        DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss zzz yyyy");
      ServerSocket server = new ServerSocket(port);
      Socket s=server.accept();
      InputStream in= s.getInputStream();
      OutputStream out = s.getOutputStream();
      PrintWriter w = new PrintWriter(out);
      Scanner r = new Scanner(in);
      for(int i=0; i<10; i++){
      String msg = r.next();
      values[i] = msg;
    }
      for(int j=0; j<values.length; j++){
          dates = Long.parseLong(values[j]);
          date = new Date(dates);
          average = average + date.getTime();
      }
      average = (average - mydate.getTime())/2;
      mydate.setTime(average);
      System.out.println(name+": "+mydate.toString());
}
}
クライアント:
public class Client implements Runnable{
    private int port;
    private int id;
    Date time = new Date();
    Date time2 = new Date();
    public Client(int port,int id){
        this.port=port;
        this.id = id;
    }
    public synchronized void run(){
        try{
            Thread.sleep(5000);
            method();
        }
        catch(Exception e){
            return;
        }
    }
    public synchronized void method() throws Exception{
        DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss zzz yyyy");
        Random ran = new Random(500);
        int d = ran.nextInt(500)+500;
        time.setTime(time.getTime()+d);
        String datestr;
        Socket s = new Socket("localhost", port);
        InputStream in= s.getInputStream();
        OutputStream out = s.getOutputStream();
        PrintWriter w = new PrintWriter(out);
        Scanner r = new Scanner(in);
        for(int i=0; i<10; i++){
        time.setTime(time.getTime()+d);
        datestr = df.format(time);
        w.println(datestr);
        w.flush();
        }
    }
}
しかし、私が得た結果は「何もない」空白だけです。プログラムはエラーで正常にコンパイルされ、問題がどこにあるかはある程度わかっていますが、値を正しく解析して正しく読み取れるようにする方法がわかりません。私を助けてください:S