📄 longconnectclient.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 + -