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

📄 tcpserver.java

📁 中国移动定位引擎的客户端
💻 JAVA
字号:
package ffcs.lbp.common;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;

import ffcs.logging.Log;
import ffcs.logging.LogFactory;

/**
 * <p>
 * Title: 小区推送系统Le接口程序
 * </p>
 * <p>
 * Description: SOCKET 服务监听类 , 监听客户端的连接操作,采用非阻塞通信,当客户端连接上后,
 * 添加到LcMgrIOProcess进行相关处理
 * </p>
 * <p>Copyright: 2008 北京福富软件技术股份有限公司福州分公司 </p>
 * <p>Company: 北京福富软件技术股份有限公司福州分公司</p>
 * @author chenxin
 * @version 1.0
 */
public class TcpServer extends Thread {
    
	private static Log log = LogFactory.getLog(Connection.class);
    
	private int port;

	private LocInfoMgrIOProcess ioProcess;

	private ServerSocketChannel ssc = null;

	private boolean runFlag = true;

	public TcpServer(int port, LocInfoMgrIOProcess iop) {
		this.port = port;
		this.ioProcess = iop;
	}

	/**
	 * 起动服务
	 * 
	 * @return true 启动成功,false启动失败
	 */
	public boolean startServer() {
		boolean result = false;
		try {
			//开启server socket通道
			ssc = ServerSocketChannel.open();
			ssc.socket().bind(new InetSocketAddress(port));
			result=true;
		} catch (IOException e) {
			e.printStackTrace();
		}
		if(result){
			super.start();
		}
		return result;
	}

	/**
	 * 停止该服务
	 */
	public void stopThread() {
		try {
			if (ssc != null && ssc.isOpen()) {
				ssc.close();
			}
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
		runFlag = false;
	}

	/**
	 * 线程运行方法
	 */
	public void run() {
		runFlag=true;
		// 监听连接,并开始通讯
	    log.info("server start listening on port " + port);
		while (runFlag) {
			try {
				// 接受connection
				SocketChannel channel = ssc.accept();
				channel.configureBlocking(false);
				ioProcess.addNewLocInfoMgrConn(channel);
			} catch (Throwable e) {
				e.printStackTrace();
			}
		}
	}
}

⌨️ 快捷键说明

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