簡體   English   中英

netty打開2端口服務器和1端口客戶端

[英]netty open 2 port server & 1 port client

我想在服務器上打開2個端口,用於生產的1個端口,用於監視的2個端口,以及用於遠程登錄到另一個服務器的1個客戶端。 但是我的服務器在運行長達1天時始終會收到“許多打開的文件”通知,我的代碼如下:

    ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));

    private PipelineServer ps= new PipelineServer(listenMessage1);
    bootstrap.setPipelineFactory(ps);

    bootstrap.setOption("child.tcpNoDelay", true);
    bootstrap.setOption("child.keepAlive", true);
    bootstrap.setOption("reuseAddress", true);

    bootstrap.bind(new InetSocketAddress(server_port));

    ServerBootstrap bootstrap2 = new ServerBootstrap( new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));

    private PipelineServer ps2 new PipelineServer(listenMessage2);
    bootstrap2.setPipelineFactory(ps2);

    bootstrap2.setOption("child.tcpNoDelay", true);
    bootstrap2.setOption("child.keepAlive", true);
    bootstrap2.setOption("reuseAddress", true);

    bootstrap2.bind(new InetSocketAddress(server_port2));

listenMessage1和listenMessage2用於在端口生產和端口監視之間進行通信,處理程序使用StringDecoder()和StringEncoder()進行解碼和編碼; 但是,如果程序長時間運行:1天,我們的日志發現“到許多打開的文件”,而我無法連接到服務器。

請您解決。 謝謝

您檢查過ulimit設置了嗎? 對於Linux上的服務器,默認情況下它相當低。 您可以使用“ ulimit -n”進行檢查。 將其設置為大於1024的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM