所以我正在与Netty合作,并试图让一个简单的客户端通过TCP连接到服务器,但遇到了一个非常奇怪的,不寻常的问题。我正在尝试连接,每当我连接,然后客户端断开连接。我调试了客户端并遇到了这个奇怪的问题,你可以在图片中看到。在Netty包含的ClientBootstrap类中,如果在其上方的try / catch中将success设置为true,则会关闭通道。正如您在调试变量中看到的那样,变量success设置为true,但它通过上面的if语句,只有在success为false时才会继续。这有什么意义?我调试了它,成功在if语句之上设置为true,然后转到if语句之后。如果有人有一个很好的解释。
答案 0 :(得分:2)
在Netty包含的ClientBootstrap类中,如果在其上方的try / catch中将success设置为true,则会关闭该通道。
不,不。这是因为否定(!
)。 布尔否定如果其旁边的表达式为true
则返回false
,反之亦然。
你说:
if(!success)
仅当您的程序到达success
的最后一行时,true
才会设置为try
。如果不是这意味着出现问题 - 可能是通道 - 现在你将关闭那个有问题的频道。所以它与你想要的相反。