当前位置: 首页 > 知识库问答 >
问题:

当客户端连接到服务器端时,有没有任何方法可以获得ChannelPipeline的引用?

林龙野
2023-03-14

在同步TCP服务器的情况下,当一个客户端连接时,我会得到一个客户端示例的参考:

 int serverPortNum = 9000;
socket while(true) {
     ServerSocket connectionSocket = new ServerSocket(serverPortNum);
     Socket dataSocket = connectionSocket.accept( );
     // pass this reference(dataSocket ) to other part of program to read or write depending on app logic
}

现在我想使用Netty使用异步TCP服务器,那么有没有任何方法可以获得当连接新客户机时创建的ChannelPipeline或ChannelHandler的引用。

    final DummyHandler  dummy = new DummyHandler();
    clientBootstrap.setPipelineFactory(new ChannelPipelineFactory() { 
        @Override
        public ChannelPipeline getPipeline() throws Exception { 
            return Channels.pipeline(dummy); 
        } 
    }); 

    InetAddress inetaddress = InetAddress.getByName(host);
    ChannelFuturecf=clientBootstrap.connect(newInetSocketAddress(inetaddress,port));                                                             

在服务器端:示例代码:ServerBootstrap bootstrap=new ServerBootstrap(new NioServerSocketChannelFactory(executors.newCachedThreadPool(),executors.newCachedThreadPool()));

    bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
        public ChannelPipeline getPipeline() throws Exception {
            return Channels.pipeline(new DummyServerHandler());
        }
    });


    bootstrap.bind(new InetSocketAddress(port));
   So when client request connection new DummyServerHandler object is created but i cannot get reference of this.  

共有1个答案

欧阳嘉
2023-03-14

我可能误解了这个问题,但这样做不会有用的。

Channel.getpipeline()
 类似资料:
  • 我有一个Node.js net socket服务器运行,它在连接到它的客户端数量很少的情况下工作得很好。但是,当我将客户机连接的数量增加到200个时,所有的初始连接都会正确地建立和通信,但是当我按Ctrl-C关闭客户机程序时,服务器上只接收到一些断开的连接(通过错误:read ECONNRESET message)。 我正在监听事件:关闭、超时、断开、错误和结束。我还检查数据事件是否收到长度为0的

  • 当我尝试使用套接字将物理设备连接到服务器时,我遇到了一个问题。在服务器端,它似乎不接受任何连接,而在客户端,套接字超时。你知道为什么会这样吗? 我在下面提供我的代码 服务器代码: 客户端: 11-16 23:32:11.016:W/系统。错误(24213):java.net。ConnectException:无法连接到/192.168.1.116(端口9090):连接失败:ETIMEDOUT(连接

  • 我有一个示例Spring启动应用程序来运行图形QL服务器,具有作为客户端,我的pom有以下依赖项: 当我尝试从客户端连接时,出现以下错误: 狩猎决议好心建议。 我还有几个问题: 我应该使用SimpleGraphQLHttpServlet将请求路由到endpoint吗 我正在React UI上使用apollo client,那么它是强制使用apollo server还是spring boot可以工作

  • 我无法连接到我的节点。js服务器。当通过节点使用http web服务器在本地运行它时,它工作得很好,但是当连接到外部时,它会加载<code>socket.io。js文件很好,但当尝试使用套接字时,它会从URL中删除端口,无法连接。 而不是在网络请求中执行此操作: http://external-domain.com:3000/socket.io/?EIO=3 它是这样做的: http://exte

  • 使用依赖关系spring-cloud-starter-zipkin,应用程序应该在sleuth触发时连接到zipkin服务器。我没有启动zipkin服务器,所以它应该抛出一个连接异常。但什么也没发生。而当我启动zipkin服务器时,它不能接收任何东西。 应用程序.属性 和日志

  • 我有一个react本机应用程序,它使用与。NET Core2.1通信的signalR。 套接字连接没有任何错误。一切都很好。但是服务器不能响应客户端的ping消息,并返回504给客户端。当返回504时,客户端的连接关闭。在hubconnection.onclose()处理。然后客户端需要重新连接。 proxy_read_timeout可以设置为高毫秒。但很乱。 所以我不能在客户机上有效地使用kee