扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

java涓璵ina妗嗘灦鎬庝箞浣跨敤

扬州沐宇科技
2024-04-20 10:15:15
Java

Apache MINA锛圡ultipurpose Infrastructure for Network Applications锛夋槸涓€涓熀浜嶯IO鐨勭綉缁滃簲鐢ㄦ鏋讹紝鍙互甯姪寮€鍙戣€呭揩閫熷紑鍙戦珮鎬ц兘鐨勭綉缁滃簲鐢ㄧ▼搴忋€備笅闈㈡槸涓€涓畝鍗曠殑绀轰緥婕旂ず濡備綍鍦↗ava涓娇鐢∕INA妗嗘灦锛?/p>

  1. 娣诲姞MINA渚濊禆锛?/li>

棣栧厛锛屽湪浣犵殑椤圭洰涓坊鍔燤INA鐨勪緷璧栥€備綘鍙互閫氳繃Maven鏉ユ坊鍔犱緷璧栵紝绀轰緥浠g爜濡備笅锛?/p>

<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-core</artifactId>
    <version>2.1.3</version>
</dependency>
  1. 鍒涘缓涓€涓狹INA鏈嶅姟鍣細

涓嬮潰鏄竴涓畝鍗曠殑绀轰緥浠g爜锛屾紨绀哄浣曞垱寤轰竴涓狹INA鏈嶅姟鍣ㄥ苟澶勭悊瀹㈡埛绔繛鎺ワ細

public class MyServer {

    public static void main(String[] args) throws IOException {
        IoAcceptor acceptor = new NioSocketAcceptor();
        acceptor.setHandler(new MyServerHandler());
        acceptor.bind(new InetSocketAddress(12345));
        System.out.println("Server started on port 12345");
    }

    private static class MyServerHandler extends IoHandlerAdapter {
        @Override
        public void messageReceived(IoSession session, Object message) throws Exception {
            String str = message.toString();
            System.out.println("Message received: " + str);
            session.write(str.toUpperCase());
        }

        @Override
        public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
            cause.printStackTrace();
            session.closeNow();
        }
    }
}
  1. 鍒涘缓涓€涓狹INA瀹㈡埛绔細

涓嬮潰鏄竴涓畝鍗曠殑绀轰緥浠g爜锛屾紨绀哄浣曞垱寤轰竴涓狹INA瀹㈡埛绔繛鎺ュ埌涓婇潰鍒涘缓鐨勬湇鍔″櫒锛?/p>

public class MyClient {

    public static void main(String[] args) throws IOException {
        IoConnector connector = new NioSocketConnector();
        connector.setHandler(new MyClientHandler());
        ConnectFuture future = connector.connect(new InetSocketAddress("localhost", 12345));
        future.awaitUninterruptibly();
        IoSession session = future.getSession();
        session.write("Hello, MINA!");
    }

    private static class MyClientHandler extends IoHandlerAdapter {
        @Override
        public void messageReceived(IoSession session, Object message) throws Exception {
            String str = message.toString();
            System.out.println("Response received: " + str);
        }

        @Override
        public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
            cause.printStackTrace();
            session.closeNow();
        }
    }
}

杩欐牱灏卞畬鎴愪簡涓€涓畝鍗曠殑MINA缃戠粶搴旂敤绋嬪簭锛屽叾涓寘鎷竴涓狹INA鏈嶅姟鍣ㄥ拰涓€涓狹INA瀹㈡埛绔€傚綋瀹㈡埛绔彂閫佹秷鎭埌鏈嶅姟鍣ㄦ椂锛屾湇鍔″櫒浼氬皢鏀跺埌鐨勬秷鎭浆鎹㈡垚澶у啓骞跺彂閫佸洖瀹㈡埛绔€備綘鍙互鏍规嵁鑷繁鐨勯渶姹傛潵鎵╁睍鍜屽畬鍠勮繖涓ず渚嬩唬鐮併€?/p>

扫码添加客服微信