⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 longconnectclient.java

📁 采用JAVA开发
💻 JAVA
字号:
package com.gctech.sms.gateway.basic;

import java.net.InetAddress;
import java.net.Socket;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import com.gctech.sms.msg.RegInfo;
import com.gctech.sms.msg.RegAck;
import org.apache.log4j.Logger;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: gctech</p>
 * @author 王红宝
 * @version $Id: LongConnectClient.java,v 1.1.1.1 2004/04/21 09:30:43 wanghb Exp $
 */

public abstract class LongConnectClient {
  public LongConnectClient() {
  }
  protected int serverPort;
  protected String serverIp;
  protected Socket sock;
  protected ObjectOutputStream oos = null ;
  protected ObjectInputStream ois = null ;
  /**网关名称*/
  protected int gatewayType;
  protected int intGateway;
  protected String strGateway;
  protected String gatewayDesc;

  protected synchronized boolean keepAlive(){
    try{
      logger.debug("before connect to:"+serverIp+"::"+this.serverPort);
      InetAddress addr = InetAddress.getByName(serverIp);
      sock = new Socket(addr, this.serverPort) ;
      /**建立一个保持长连接的socket通信*/
      sock.setKeepAlive( true ) ;
      oos = new ObjectOutputStream( sock.getOutputStream() ) ;
      ois = new ObjectInputStream( sock.getInputStream() ) ;
      RegInfo mti = new RegInfo() ;
      mti.gateway = this.intGateway ;
      mti.gateWayName = this.strGateway;
      mti.gateWayDesc = this.gatewayDesc;
      //oos.writeInt(gatewayType);
      //oos.flush();
      logger.debug("before write to:"+intGateway+":"+gatewayDesc+":"+this.strGateway);
      oos.writeObject( mti );
      oos.reset();
      logger.debug("before read from:"+intGateway+":"+gatewayDesc+":"+this.strGateway);
      RegAck mta = ( RegAck )ois.readObject() ;
      logger.info("[" + this.strGateway + "] Gateway register " + mta.status + "!" ) ;
      return true ;
    } catch( Throwable e ){
      logger.info("[" + this.strGateway + "]Waiting Connect to Server!");
      logger.info("The reason is:"+e.getMessage());
      try{
        Thread.sleep( 1 * 1000 ) ;
      } catch( InterruptedException ex ){
        logger.error(ex, ex);
      }
    }
    return !true ;
  }




  static final Logger logger = Logger.getLogger(LongConnectClient.class);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -