如何检测Netty 4.0.x的新传入连接?下面是一个简单服务器的代码:
public static void main(String[] args) {
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
System.out.println("Init channel");
ch.pipeline().addLast(new ChannelInboundHandlerAdapter() {
@Override
public void channelRegistered(ChannelHandlerContext ctx) {
System.out.println("Channel registered");
}
@Override
public void channelActive(final ChannelHandlerContext ctx) {
System.out.println("Channel active");
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
System.out.println("Channel read");
ctx.writeAndFlush((ByteBuf) msg);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
System.out.println("Channel exception caught");
cause.printStackTrace();
ctx.close();
}
});
}
})
.option(ChannelOption.SO_BACKLOG, 128)
.childOption(ChannelOption.SO_KEEPALIVE, true);
ChannelFuture f;
try {
f = b.bind("127.0.0.1", 8080).sync();
f.channel().closeFuture().sync();
} catch (InterruptedException e) {
e.printStackTrace();
}
} finally {
workerGroup.shutdownGracefully();
bossGroup.shutdownGracefully();
}
}
问题是我无法检测到连接建立的时刻。所有System.Out.Printlns仅在客户端向服务器发送某些信息后调用。这意味着在客户端向服务器发送数据之前,服务器不能向客户端发送任何数据。
有什么方法可以达到这样的行为?
您可以在客户端连接到服务器时发送一些数据,因此可以在channelRegistered或channelActive方法中使用CTX.WriteAndFlush(msg)。如果您的客户没有收到任何数据,您应该确保编码的类型是正确的。
问题内容: 在我的Java应用程序中,如何检测Internet连接速度有多快?例如,我在家中使用AT&T Fast DSL,我想知道是否有一种方法可以编写执行以下操作的方法: 它将返回以kbps为单位的数字,例如2800kbps [2.8 M] 编辑:我要问的原因是在我的应用程序中,我可以打开多个Internet流,具体取决于用户的Internet连接速度,我希望它自动确定要打开多少个流而不会中断
我正在尝试检测已经连接到android的usb设备。我知道有动作可以检测USB何时连接或断开。但是我真的不知道如何在将usb设备连接到android后检查设备。另外,我发现每个USB设备都有它的设备类别代码,但是我怎么知道连接的是哪种设备呢?例如,我需要检测usb鼠标和键盘;我如何区分它们?
问题内容: 在Linux环境中,我需要检测RJ45连接器与其插槽的物理连接或断开连接状态。最好仅使用BASH脚本。 在其他站点上提出的以下解决方案不适用于此目的: 使用’ifconfig’-由于可以连接网络电缆,但网络配置不正确或当前未启动。 ping主机-因为产品将使用未知的网络配置和未知的主机位于LAN内。 / proc文件系统中没有可用的某种状态(其他所有文件都在其中)吗? Linux世界应
我有数据,我想应用滚动函数来检测哪个点的值大于特定阈值。 我想要的是找到下一个2个值高于某个阈值(例如30)的行。这将产生以下结果: 我有一个大的数据集(几百万行),所以我试图找到一个有效的解决方案。也许使用?由reprex包(v0.2.1)在2019-02-26创建
问题内容: 当我在Turtle图形中运行无限循环绘图时单击X(关闭)按钮时,会出现一些错误消息。 这是一个例子: 当我关闭窗口时,将显示以下错误消息。 我想知道如何避免此类错误消息。 有什么方法可以将tkinter模块中Tk类的“协议”方法与“ WM_DELETE_WINDOW”选项一起使用? 问题答案: 是的,确实可以通过注册一个函数(我称它为,但是您可以选择任何函数名)来拦截窗口关闭事件,从而
问题内容: 我需要根据他们的IP或http标头了解用户当前所在的时区。 关于这个问题,我有很多答案,但是我听不懂那些答案。有人说使用。但是这是什么意思? 我的(index.php)页面的根目录中有一个。因此,为此,我必须动态获取时区并将其设置为。 问题答案: 总结一下Matt Johnson在代码方面的答案: