Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cnc;
- import java.nio.charset.StandardCharsets;
- import org.apache.mina.filter.codec.ProtocolCodecFilter;
- import org.apache.mina.filter.logging.LoggingFilter;
- import org.apache.mina.transport.socket.nio.NioSocketConnector;
- import main.Vars;
- import java.net.InetSocketAddress;
- import org.apache.mina.core.RuntimeIoException;
- import org.apache.mina.core.future.ConnectFuture;
- import org.apache.mina.core.session.*;
- import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
- public class CNCClient {
- private ClientSessionHandler clientHandler = new ClientSessionHandler();
- public CNCClient() {
- try {
- new Thread(() -> init()).start();
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- private void init() {
- NioSocketConnector connector = new NioSocketConnector();
- connector.setConnectTimeoutMillis(3000);
- connector.getFilterChain().addLast("logger", new LoggingFilter("CNCServer"));
- connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(StandardCharsets.UTF_8, "\n", "\n")));
- connector.setHandler(clientHandler);
- IoSession session;
- for(;;) {
- try {
- ConnectFuture future = connector.connect(new InetSocketAddress("127.0.0.1", Vars.CNC_SOCKET_PORT));
- connector.getSessionConfig().setReuseAddress(true);
- future.awaitUninterruptibly();
- session = future.getSession();
- clientHandler.setServerWritingSession(session);
- break;
- } catch(RuntimeIoException rioe) {
- System.out.print("Could not connect to CNC socket.");
- }
- }
- session.getCloseFuture().awaitUninterruptibly();
- connector.dispose();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment