gitextract_mhw2jg3q/ ├── .gitignore ├── LICENSE ├── README.md ├── VERSION.md ├── pom.xml └── src/ ├── main/ │ ├── java/ │ │ └── person/ │ │ └── pluto/ │ │ └── natcross2/ │ │ ├── ClientApp.java │ │ ├── CommonConstants.java │ │ ├── ServerApp.java │ │ ├── api/ │ │ │ ├── IBelongControl.java │ │ │ ├── IHttpRouting.java │ │ │ ├── passway/ │ │ │ │ ├── SecretPassway.java │ │ │ │ └── SimplePassway.java │ │ │ ├── secret/ │ │ │ │ ├── AESSecret.java │ │ │ │ └── ISecret.java │ │ │ └── socketpart/ │ │ │ ├── AbsSocketPart.java │ │ │ ├── HttpRouteSocketPart.java │ │ │ ├── SecretSocketPart.java │ │ │ └── SimpleSocketPart.java │ │ ├── channel/ │ │ │ ├── Channel.java │ │ │ ├── InteractiveChannel.java │ │ │ ├── JsonChannel.java │ │ │ ├── LengthChannel.java │ │ │ ├── SecretInteractiveChannel.java │ │ │ ├── SocketChannel.java │ │ │ └── StringChannel.java │ │ ├── clientside/ │ │ │ ├── ClientControlThread.java │ │ │ ├── adapter/ │ │ │ │ ├── IClientAdapter.java │ │ │ │ └── InteractiveSimpleClientAdapter.java │ │ │ ├── config/ │ │ │ │ ├── AllSecretInteractiveClientConfig.java │ │ │ │ ├── HttpRouteClientConfig.java │ │ │ │ ├── IClientConfig.java │ │ │ │ ├── InteractiveClientConfig.java │ │ │ │ └── SecretInteractiveClientConfig.java │ │ │ ├── handler/ │ │ │ │ ├── CommonReplyHandler.java │ │ │ │ ├── IClientHandler.java │ │ │ │ ├── ServerHeartHandler.java │ │ │ │ └── ServerWaitClientHandler.java │ │ │ └── heart/ │ │ │ ├── ClientHeartThread.java │ │ │ └── IClientHeartThread.java │ │ ├── common/ │ │ │ ├── CommonFormat.java │ │ │ └── Optional.java │ │ ├── executor/ │ │ │ ├── IExecutor.java │ │ │ ├── NatcrossExecutor.java │ │ │ └── SimpleExecutor.java │ │ ├── model/ │ │ │ ├── HttpRoute.java │ │ │ ├── InteractiveModel.java │ │ │ ├── NatcrossResultModel.java │ │ │ ├── SecretInteractiveModel.java │ │ │ ├── enumeration/ │ │ │ │ ├── InteractiveTypeEnum.java │ │ │ │ └── NatcrossResultEnum.java │ │ │ └── interactive/ │ │ │ ├── ClientConnectModel.java │ │ │ ├── ClientControlModel.java │ │ │ └── ServerWaitModel.java │ │ ├── nio/ │ │ │ ├── INioProcessor.java │ │ │ ├── NioHallows.java │ │ │ └── ProcesserHolder.java │ │ ├── serverside/ │ │ │ ├── client/ │ │ │ │ ├── ClientServiceThread.java │ │ │ │ ├── adapter/ │ │ │ │ │ ├── DefaultReadAheadPassValueAdapter.java │ │ │ │ │ ├── IClientServiceAdapter.java │ │ │ │ │ ├── PassValueNextEnum.java │ │ │ │ │ └── ReadAheadPassValueAdapter.java │ │ │ │ ├── config/ │ │ │ │ │ ├── IClientServiceConfig.java │ │ │ │ │ ├── SecretSimpleClientServiceConfig.java │ │ │ │ │ └── SimpleClientServiceConfig.java │ │ │ │ ├── handler/ │ │ │ │ │ ├── DefaultInteractiveProcessHandler.java │ │ │ │ │ ├── IPassValueHandler.java │ │ │ │ │ └── InteractiveProcessHandler.java │ │ │ │ └── process/ │ │ │ │ ├── ClientConnectProcess.java │ │ │ │ ├── ClientControlProcess.java │ │ │ │ └── IProcess.java │ │ │ └── listen/ │ │ │ ├── IServerListen.java │ │ │ ├── ListenServerControl.java │ │ │ ├── ServerListenThread.java │ │ │ ├── clear/ │ │ │ │ ├── ClearInvalidSocketPartThread.java │ │ │ │ └── IClearInvalidSocketPartThread.java │ │ │ ├── config/ │ │ │ │ ├── AllSecretSimpleListenServerConfig.java │ │ │ │ ├── IListenServerConfig.java │ │ │ │ ├── MultControlListenServerConfig.java │ │ │ │ ├── SecretSimpleListenServerConfig.java │ │ │ │ └── SimpleListenServerConfig.java │ │ │ ├── control/ │ │ │ │ ├── ControlSocket.java │ │ │ │ ├── IControlSocket.java │ │ │ │ └── MultiControlSocket.java │ │ │ ├── recv/ │ │ │ │ ├── ClientHeartHandler.java │ │ │ │ ├── CommonReplyHandler.java │ │ │ │ └── IRecvHandler.java │ │ │ └── serversocket/ │ │ │ └── ICreateServerSocket.java │ │ └── utils/ │ │ ├── AESUtil.java │ │ ├── Assert.java │ │ ├── CountWaitLatch.java │ │ ├── MD5Signature.java │ │ └── Tools.java │ └── resources/ │ └── logback.xml └── test/ └── java/ └── person/ └── pluto/ └── TestMain.java