package com.metazion.jgd.net; import java.util.ArrayList; import com.metazion.jgd.info.ServerConfig; import com.metazion.jgd.util.JgdLogger; import com.metazion.jm.net.Endpoint; import com.metazion.jm.net.TcpClient; import com.metazion.jm.net.TcpServer; public class NetworkService { private TcpServer tcpServer = new TcpServer(); private TcpClient tcpClient = new TcpClient(); private LSServer lsServer = new LSServer(); private LSClient lsClient = new LSClient(); private ArrayList<CSLogin> csLoginList = new ArrayList<CSLogin>(); public boolean init() { JgdLogger.getLogger().fatal("Network service init..."); final int privatePort = ServerConfig.getInstance().privatePort; lsServer.setLocalPort(privatePort); lsServer.setRelistenInterval(10); tcpServer.attach(lsServer); final int publicPort = ServerConfig.getInstance().publicPort; lsClient.setLocalPort(publicPort); lsClient.setRelistenInterval(10); tcpServer.attach(lsClient); for (Endpoint endpoint : ServerConfig.getInstance().loginEndpointList) { CSLogin csLogin = new CSLogin(); csLogin.setRemoteHost(endpoint.host); csLogin.setRemotePort(endpoint.port); csLogin.setReconnectInterval(10); tcpClient.attach(csLogin); csLoginList.add(csLogin); } return true; } public void start() { JgdLogger.getLogger().fatal("Network service start..."); lsServer.open(); lsClient.open(); for (CSLogin csLogin : csLoginList) { csLogin.open(); } tcpServer.listen(); tcpClient.connect(); } public void stop() { JgdLogger.getLogger().fatal("Network service stop..."); lsServer.close(); lsClient.close(); for (CSLogin csLogin : csLoginList) { csLogin.close(); } tcpServer.close(); tcpClient.close(); } public void sendToLogin(Object data) { for (CSLogin csLogin : csLoginList) { csLogin.send(data); } } }