apache mina的服务器如何与其他语言写客户端的socket通信?

发布于 2021-11-11 09:36:50 字数 171 浏览 779 评论 8

如题,我用c++的socket客户端的socket能连接上apache mina的服务器,但是他们彼此发消息都接收不到,在socket的客户端调用write方法服务器的public void messageReceived(IoSession session, Object message)根本就不会被触发,不知道是怎么回事。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

月牙弯弯 2021-11-15 07:43:03

学习了

长安忆 2021-11-15 07:36:07

filterChainBuilder.addLast("logger", new LoggingFilter());

在过滤链里面先把日志加上,然后看看有没有连接上,如果连接上,但是没收到消息可能是协议有问题,你得写的decoder来解析你的协议啊

拍不死你 2021-11-15 07:27:04

引用来自#7楼“szf”的帖子

messageReceived是IoHandler的方法,需要在Decoder的doDecode方法中,使用out的write方法后,才会在送出去的,理论上,送出去的对象应该是解码后的对象,所以raw格式的tcp流应该在Decoder中处理,IoHandler中处理的是解码后的业务对象。

所以,如果想直接在messageReceived收到tcp包,是不可能的(除非写个直通的Decoder),也不提倡这样干(假如你真的写了一个直通的Decoder)。

千纸鹤带着心事 2021-11-15 07:14:52

messageReceived是IoHandler的方法,需要在Decoder的doDecode方法中,使用out的write方法后,才会在送出去的,理论上,送出去的对象应该是解码后的对象,所以raw格式的tcp流应该在Decoder中处理,IoHandler中处理的是解码后的业务对象。

所以,如果想直接在messageReceived收到tcp包,是不可能的(除非写个直通的Decoder),也不提倡这样干(假如你真的写了一个直通的Decoder)。

霞映澄塘 2021-11-15 06:24:46

messageReceived(IoSession session, Object message)是在接收到消息时候触发,我记得有个方法sessionCreate是在连接成功是触发的,你看看。最好是先telnet ,确定server端有端口侦听,能连接上去,再尝试消息发送。

檐上三寸雪 2021-11-14 18:09:48

引用来自#2楼“王振威”的帖子

没人帮帮忙么?给个链接也行啊

反话 2021-11-13 14:02:05

没人帮帮忙么?给个链接也行啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文