0

3秒ごとにメッセージTimerTaskを送信するために使用していますが、送信は1回だけです。

 public static void main(String[] args) throws IOException {
            soc = new Socket("localhost", 12345);
            out = new PrintWriter(soc.getOutputStream(), true);
            send();
        }
        private static void send() {
            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    out.println("fetewtewwefwfewf egreg \n");
                    out.flush();
                    InputStream is;
                    try {
                        is = soc.getInputStream();
                        DataInputStream dis = new DataInputStream(is);
                        while (!soc.isClosed()) {
                            long value = dis.readLong();
                            System.out.println(value);
                        }
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }, 3000);
        }
    }
4

2 に答える 2

1

timer.schedule(TimerTask task, long delay)1回の実行のみにタスクをスケジュールするものを使用しています。繰り返し実行するtimer.scheduleAtFixedRate(TimerTask task, long delay, long period)には、を使用します。つまり、コードを次のように変更します

 timer.scheduleAtFixedRate(new TimerTask() {
     ....
 }, 0, 3000);
于 2013-03-20T08:37:02.727 に答える
0
于 2013-03-20T08:36:17.473 に答える