apache mina的服务器如何与其他语言写客户端的socket通信?
如题,我用c++的socket客户端的socket能连接上apache mina的服务器,但是他们彼此发消息都接收不到,在socket的客户端调用write方法服务器的public void messageReceived(IoSession session, Object message)根本就不会被触发,不知道是怎么回事。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
学习了
filterChainBuilder.addLast("logger", new LoggingFilter());
在过滤链里面先把日志加上,然后看看有没有连接上,如果连接上,但是没收到消息可能是协议有问题,你得写的decoder来解析你的协议啊
引用来自#7楼“szf”的帖子
messageReceived是IoHandler的方法,需要在Decoder的doDecode方法中,使用out的write方法后,才会在送出去的,理论上,送出去的对象应该是解码后的对象,所以raw格式的tcp流应该在Decoder中处理,IoHandler中处理的是解码后的业务对象。
所以,如果想直接在messageReceived收到tcp包,是不可能的(除非写个直通的Decoder),也不提倡这样干(假如你真的写了一个直通的Decoder)。
messageReceived是IoHandler的方法,需要在Decoder的doDecode方法中,使用out的write方法后,才会在送出去的,理论上,送出去的对象应该是解码后的对象,所以raw格式的tcp流应该在Decoder中处理,IoHandler中处理的是解码后的业务对象。
所以,如果想直接在messageReceived收到tcp包,是不可能的(除非写个直通的Decoder),也不提倡这样干(假如你真的写了一个直通的Decoder)。
messageReceived(IoSession session, Object message)是在接收到消息时候触发,我记得有个方法sessionCreate是在连接成功是触发的,你看看。最好是先telnet ,确定server端有端口侦听,能连接上去,再尝试消息发送。
看看消息格式问题
http://www.java1995.cn/blog/category/13/east_java
引用来自#2楼“王振威”的帖子
没人帮帮忙么?给个链接也行啊
没人帮帮忙么?给个链接也行啊