package com.jsb_lcd.data;
|
|
import java.io.IOException;
|
import java.net.ServerSocket;
|
import java.net.Socket;
|
import java.net.SocketTimeoutException;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import com.battmonitor.data.BattData_RT_Array;
|
import com.battmonitor.sql.MysqlConnPool;
|
|
public class JSB_LCD_ServerSocket_Thread extends Thread{
|
private static final int JSB_LCD_ServerSocket_Port = 3601;
|
|
MysqlConnPool m_ConnPool = null;
|
private BattData_RT_Array m_Data;
|
//private AppConfig m_app_cfg = null;
|
private Logger logger = null;
|
|
/**
|
* ¸ù¾ÝdataÊý×é»ñÈ¡É豸µÄidºÍip
|
* @param pool
|
* @param data
|
* @param cfg
|
*/
|
|
public JSB_LCD_ServerSocket_Thread(MysqlConnPool pool, BattData_RT_Array data)
|
{
|
logger = LogManager.getLogger(this.getClass());
|
|
m_ConnPool = pool;
|
m_Data = data;
|
}
|
|
@Override
|
public void run() {
|
logger.warn("JSB_LCD_Listener_Thread Started On Port" + JSB_LCD_ServerSocket_Port);
|
|
ServerSocket server = null;
|
while(true) {
|
try {
|
logger.trace("JSB_LCD_Listener_Thread ¿ªÊ¼¼àÌý" + JSB_LCD_ServerSocket_Port + "¶Ë¿Ú");
|
//¼àÌý7913¶Ë¿Ú
|
server = new ServerSocket(JSB_LCD_ServerSocket_Port);
|
while(true) {
|
server.setSoTimeout(600000); //600 seconds
|
|
Socket tmp_socket = server.accept();
|
JSB_LCD_SocketClient2 client = new JSB_LCD_SocketClient2(m_ConnPool, m_Data, tmp_socket, true);
|
client.start();
|
}
|
} catch (SocketTimeoutException e1) {
|
logger.trace(e1.toString());
|
} catch (IOException e) {
|
logger.error(e.toString(), e);
|
} finally {
|
try {
|
Thread.sleep(500);
|
if(null != server) {
|
server.close();
|
}
|
Thread.sleep(500);
|
} catch (IOException | InterruptedException e1) {
|
// TODO Auto-generated catch block
|
logger.error(e1.toString(), e1);
|
}
|
}
|
}
|
}
|
}
|