📄 crbtserversocket.java
字号:
package com.wireless.crbt.gwif.global.pub;
import java.io.BufferedInputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;
//import org.apache.commons.betwixt.io.BeanReader;
import org.apache.log4j.Logger;
import com.wireless.crbt.gwif.global.CRBT;
//import com.wireless.sms.pub.net.SocketConstant;
//import com.wireless.sms.pub.net.netty2.MTServer;
public class CRBTServerSocket implements Runnable {
private Logger log = null;
// private CRBT crbt = null;
private int port;
private Vector allowclient;
// private BeanReader beanReader = new BeanReader();
private CRBTCenterGlobalInterface global;
private CRBTServer crbtServer = null;
/**
* 构造方法
* @param allowclient Vector
* @param port int
* @param global CenterGlobalInterface
* @param log Logger
*/
public CRBTServerSocket(Vector allowclient, int port,
CRBTCenterGlobalInterface global, Logger log) {
this.port = port;
this.allowclient = allowclient;
this.global = global;
this.log = log;
}
/**
* 接受对象
*/
public void run() {
if (CRBTSocketConstant.SOCKETMETHOD == 1) {
this.receiveMTByObject();
}
else {
this.receiveCRBTByStream();
}
}
/**
* 通过xml字符串接收对象
*/
public void receiveCRBTByStream() {
crbtServer = new CRBTServer(port, allowclient, global, log);
crbtServer.start();
}
public void stop(){
crbtServer.stop();
}
/**
* 通过对象序列化接收对象
*/
public void receiveMTByObject() {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(port);
}
catch (IOException ex) {
ex.printStackTrace();
log.error("418Socket-对象创建mt服务器监听失败");
}
Socket socket = null;
while (true) {
try {
socket = serverSocket.accept();
String remoteIP = socket.getInetAddress().getHostAddress();
//判断是否是允许连接的客户端
if (!allowclient.contains(remoteIP)) { //不是
/* zmli 0728
sc.getOutputStream().write(new SocketResponse(1).getBytes());
sc.getOutputStream().flush();
sc.close();
*/
//zmli 0728
}
else { //是
synchronized (this) {
try {
ObjectInputStream ois = new ObjectInputStream(new
BufferedInputStream(socket.getInputStream()));
CRBT crbt = (CRBT) ois.readObject();
global.add(crbt);
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
catch (EOFException ex) {
}
finally{
if( socket != null )
socket.close();
}
}
}
}
catch (EOFException ex1) {
ex1.printStackTrace();
if (log != null) log.error("419Socket-对象读取mt数据失败");
}
catch (Exception ex) {
ex.printStackTrace();
if (log != null) log.error("420Socket-对象接受mt数据失败");
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -