Guest User

CNCCLient

a guest
Jun 2nd, 2024
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.67 KB | None | 0 0
  1. package cnc;
  2.  
  3. import java.nio.charset.StandardCharsets;
  4.  
  5. import org.apache.mina.filter.codec.ProtocolCodecFilter;
  6. import org.apache.mina.filter.logging.LoggingFilter;
  7. import org.apache.mina.transport.socket.nio.NioSocketConnector;
  8.  
  9. import main.Vars;
  10. import java.net.InetSocketAddress;
  11. import org.apache.mina.core.RuntimeIoException;
  12. import org.apache.mina.core.future.ConnectFuture;
  13. import org.apache.mina.core.session.*;
  14. import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
  15.  
  16.  
  17. public class CNCClient {
  18.  
  19.     private ClientSessionHandler clientHandler = new ClientSessionHandler();
  20.    
  21.     public CNCClient() {
  22.         try {
  23.             new Thread(() -> init()).start();
  24.         } catch(Exception e) {
  25.             throw  new RuntimeException(e);
  26.         }
  27.     }
  28.  
  29.     private void init() {
  30.  
  31.         NioSocketConnector connector = new NioSocketConnector();
  32.         connector.setConnectTimeoutMillis(3000);
  33.        
  34.         connector.getFilterChain().addLast("logger", new LoggingFilter("CNCServer"));
  35.         connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(StandardCharsets.UTF_8, "\n", "\n")));
  36.        
  37.         connector.setHandler(clientHandler);
  38.        
  39.         IoSession session;
  40.        
  41.         for(;;) {
  42.             try {
  43.                
  44.                 ConnectFuture future = connector.connect(new InetSocketAddress("127.0.0.1", Vars.CNC_SOCKET_PORT));
  45.                 connector.getSessionConfig().setReuseAddress(true);
  46.                 future.awaitUninterruptibly();
  47.                 session = future.getSession();
  48.                 clientHandler.setServerWritingSession(session);
  49.                 break;
  50.                
  51.             } catch(RuntimeIoException rioe) {
  52.                 System.out.print("Could not connect to CNC socket.");
  53.             }
  54.         }
  55.         session.getCloseFuture().awaitUninterruptibly();
  56.         connector.dispose();
  57.        
  58.     }
  59.    
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment