gpt4 book ai didi

java - 如何使用 Apache MINA 服务器读取以字节为单位的二进制数据?

转载 作者:行者123 更新时间:2023-12-01 10:39:00 25 4
gpt4 key购买 nike

这里我正在读取二进制数据,但这给了我 “java.lang.ClassCastException:java.lang.String无法转换为org.apache.mina.core.buffer.IoBuffer”

IoBuffer buffer = (IoBuffer) message;//此行异常

IoAcceptor acceptor = new NioSocketAcceptor();

acceptor.getFilterChain().addLast("logger", new LoggingFilter());
acceptor.getFilterChain().addLast(
"codec",
new ProtocolCodecFilter(new TextLineCodecFactory(Charset
.forName("ISO-8859-1"))));
@Override
public void messageReceived(IoSession session, Object message)
throws Exception {
IoBuffer buffer = (IoBuffer) message;
b = new byte[buffer.remaining()];
buffer.get(b);
}

最佳答案

此问题是因为它将字符串值分配给 IOBuffer IoBuffer buffer = (IoBuffer) message;。不能直接赋值。您必须使用 putString 方法。我添加了很少的样本。我不知道你在做什么,但这可能对你有帮助。

String message=(String)message;
IoBuffer buf = IoBuffer.allocate(message.length()).setAutoExpand(true);
buf.putString(message, ENCODER);

关于java - 如何使用 Apache MINA 服务器读取以字节为单位的二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com