现在我要写个长连接的客户端,不知道心跳机制是在创建连接后开启一个单独的心跳线程去完成还是创建socket之后直接去实现,请大家多多指教啊,最好能写些代码给小弟看看

解决方案 »

  1.   

    avax.swing.Timer clock = new javax.swing.Timer(1000,new ActionListener(){
     public void actionPerformed(ActionEvent e) {
        //执行心跳方法
        /**...*/
       //调用其他方法
       /**...*/
      }
     
    });
    clock.start();
      

  2.   


    socket连接成功后开启一个线程一直去连?  
    public void run() {
    int i = 0;
    while (true) {
    try {
    if (socket.getKeepAlive()) {
    // System.out.println("Client connect to Server is ok");
    } else {
    new SocketClient(SocketContents.IP, SocketContents.PORT,
    2000);
    }
    } catch (SocketException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    i++;
    }
    try {
    Thread.sleep(3000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }

    if(3 == i){
    System.out.println("ServerSocket close");
    setConnected(false);
    } }
    只是我写的代码,当然了,代码是有问题的,请继续指教