我正试图用Netty开发以下用例:
客户端连接不是问题。我有一个处理这些请求的客户端。但是我在注册处理器处理程序(必须根据客户端发送的配置动态绑定)并为特定客户端提供服务时遇到问题。
任何帮助都将是非常感谢的,因为我目前被如何从ClientHandler,一旦处理器的配置被发送,我可以在服务器上启动一个新的服务器套接字,并将客户端链接到它的处理器所困扰。
客户端和处理器共享一个唯一的哈希数,可用于标识哪个处理器应为哪个客户端提供服务。
我基本上一直在使用Netty HexProxy示例思想,但我需要另一个服务器套接字来服务处理器,而不是客户端套接字。我在考虑通过向另一个管道添加处理程序或者做一些类似于Netty SecureChat示例的事情来将两者联系起来。
通过重新想象这个场景,我能够解决这个问题。
我将客户机视为客户机,将处理器视为服务于特定客户机请求的服务器,而不是将两者视为连接到聊天服务器(中间服务器)的客户机。
通过将引导程序发送到HandshakeHandler来建立任意服务器端口,该HandshakeHandler绑定和同步当前未绑定的端口。
它也是握手处理程序,它通过唯一的哈希将客户端和处理器连接到特定的通道组,并根据需要为每个通道重新配置通道管道(一旦客户端和处理器之间的握手成功完成,它就会自行删除)。
我在netty server应用程序中面临资源问题。 无法看到与Netstat的任何打开或挂起的连接... 我使用ReadTimeoutHandler关闭未使用的连接,并使用以下exceptionHandler代码: 服务器引导程序如下所示: 更新2:根据请求,我将日志处理程序移到ReadTimeouthandler前面,以下是日志。客户端通常断开连接的情况: 客户端不断开连接的情况: 所以收盘前
我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput
线程“main”java.net.ConnectException:连接超时:在java.net.dualStackplainsockeTimpl.Connect0(本机方法)在java.net.dualStackplainsockeTimpl.socketConnect(DualStackplainsockeTimpl.java:69)在java.net.abstractplainsockeTi
我知道在Netty4中,一旦建立了一个通道,该通道的所有事件处理都在分配给特定EventLoop的同一个线程上完成。此绑定在通道创建时完成。 我不明白的部分是,实际需要多少线程来接受新连接、创建新通道和进行绑定?
或者也许有另一种方法。 OBS.我现在不打算让游戏运行在服务器上对付作弊者。因为这将对我的安装程序中的服务器cpu造成很大的负载。
我有一个java服务器应用程序,可以通过与多个客户端通信。在这个通道上,客户端发送请求,服务器发送应答。现在我想添加一个功能,服务器可以将文件发送到客户端。我不想通过用于通信的套接字发送,所以在一个客户端和一个服务器之间使用更多套接字是个好主意吗?如果是,如何处理?我用过这样的东西吗? 还是有更好的办法?