Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过MINA正确发送数据?_Java_Sockets_Nio_Apache Mina - Fatal编程技术网

Java 如何通过MINA正确发送数据?

Java 如何通过MINA正确发送数据?,java,sockets,nio,apache-mina,Java,Sockets,Nio,Apache Mina,我试图从MINA开始,所有示例似乎都将数据写入会话,而不是使用可以反复写入相同类型数据的方法 我试图利用org.apache.mina.filter.codec.demux.MessageEncoder/MessageDecoder对消息进行编码/解码这将允许我始终在中心位置执行任务,而不是像示例那样在代码中内联执行任务 假设我有一个ProtocolCodecFactory(它扩展了DemuxingProtocolCodecFactory),它有一个loginRequestCoder(它实现了M

我试图从MINA开始,所有示例似乎都将数据写入会话,而不是使用可以反复写入相同类型数据的方法

我试图利用
org.apache.mina.filter.codec.demux.MessageEncoder
/
MessageDecoder
消息进行编码
/
解码
这将允许我始终在中心位置执行任务,而不是像示例那样在代码中内联执行任务

假设我有一个
ProtocolCodecFactory
(它扩展了
DemuxingProtocolCodecFactory
),它有一个
loginRequestCoder
(它实现了
MessageEncoder
,并通过工厂的
addMessageEncoder
方法添加)。这是否意味着我不应该直接调用带有用户名/密码数据的
session.write()
,而应该这样做

LoginRequest request = new LoginRequest(username, password);
new ProtocolCodecFactory()
    .getEncoder(session)
    .encode(session, request, someProtocolEncoderOutput);

我不想撒谎……MINA似乎应该简化联网过程,我相信当我处理好它时,它会简化,但我现在完全搞不清楚。

事实证明,你可以简单地通过发送请求。以下是一个基于我最初问题的简单示例:

LoginRequest request = new LoginRequest(username, password);
session.write(request);