如果服务器应用程序正在侦听,我有一个netty客户端可以正常工作。但是如果服务器应用程序没有运行,因此没有在端口上侦听,那么客户端仍然会像预期服务器一样运行。
我想处理服务器没有监听的情况,在这种情况下甚至不发送数据(而是做其他事情,比如告诉用户联系管理员等)。这甚至可能吗?
注意: 如果客户端尝试连接到未指定的端口或IP,我的客户端会抛出我可以处理的异常。我的问题是,当服务器没有监听它通常应该监听的端口时,不会抛出任何异常。
答案 0 :(得分:1)
叶氏。有时您无法检测到服务器已关闭/未在端口上侦听。
因此,对于这种情况,您可以添加到客户端管道ss <- read.table(text = " plot ID tree
1 10000503711 LV
2 1000057448111 LV
3 1000057448111 HB
4 1000057448111 KU
5 10000603711 LV
6 1000063448111 TM
7 1000063448111 KS", header = TRUE,
colClasses = c("numeric", "character", "character"))
ss[ss$ID %in% unique(ss[ss$tree %in% c("HB", "KU"), "ID"]), ]
plot ID tree
2 2 1000057448111 LV
3 3 1000057448111 HB
4 4 1000057448111 KU
。如果您的客户在特定时间段内没有从服务器收到任何消息,则会抛出ReadTimeoutHandler
。
但是,这可能还不够。例如,当服务器和客户端之间的连接不是非常活跃时,也可能抛出此异常。因此,对于这种情况,您可能需要实现乒乓处理程序,这将告诉您ReadTimeoutException
该连接处于活动状态,并且在这种情况下不会抛出异常。