我正在尝试使用Netty在Java中检测主机与客户端之间的连接问题。我的问题似乎很简单,但是我什么也找不到,因为当我在Google中尝试错误时,Minecraft出现了。
我的问题是检测到错误的IP,已关闭的服务器。例如:
我想连接192.168.1.1(我组成了这个IP),但是服务器已死。 Netty尝试在5到10秒及其庞大的时间范围之间建立连接。如何在较短的时间内检测到它?
EventLoopGroup group = new NioEventLoopGroup();
try {
Bootstrap clientBootstrap = new Bootstrap();
clientBootstrap.group(group);
clientBootstrap.channel(NioSocketChannel.class);
clientBootstrap.remoteAddress(new InetSocketAddress(host.getIp(), host.getPort()));
clientBootstrap.handler(new ChannelInitializer<SocketChannel>() {
protected void initChannel(SocketChannel socketChannel) throws Exception {
//TODO, TIMEOUT BILGISI ILE DOLDUR BURAYI
//socketChannel.pipeline().addLast(new ReadTimeoutHandler(1));
//socketChannel.pipeline().addLast("idleStateHandler", new IdleStateHandler(1, 1, 2));
socketChannel.pipeline().addLast(new ClientHandler(host,message));
}
});
ChannelFuture channelFuture = clientBootstrap.connect().sync();
channelFuture.channel().closeFuture().sync();
我想我必须在clientBootstrap.handler中写一些东西,但我不知道。预先感谢
答案 0 :(得分:0)
已解决
在clientBootstrap下面添加此行为我解决了
static void EventCallBack(nua_event_t event ,
int status ,
char const * phrase ,
nua_t * nua ,
void * Object,
nua_handle_t * nh ,
nua_hmagic_t * hmagic ,
sip_t const *sip ,
tagi_t tags[]) {
switch(event) {
case nua_i_subscribe:
//processsing our custom code here
//After processing the custome code here
nua_handle_destroy((nua_handle_t *)nh);
}