Java MINA Expose Socket

时间:2011-05-04 16:51:43

标签: java sockets nio apache-mina

我正在使用使用NioAccepter的MINA实现。

我的任务是与其他java.net.Socket框架以及Apache的MINA NIO框架建立基本的java.net.Socket框架接口。 这应该很简单,将原始套接字从MINA传递到我的框架。

但是,我还没有成功暴露原始套接字。这是我第一次看到MINA框架,我很困惑。

我得到的结果最接近的是:

((SocketChannel)((NioSession)sess).channel).socket()

哪会解决我的问题,除了NioSession.channel受到保护。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:2)

没有多少框架可以让您访问底层套接字。当其他线程没有锁定它时,一个线程使用它是非常安全的。在这里,MINA使用封装将其锁定,并且他们使用的是异步选择器模型,所以你根本不应该触摸套接字,否则你就会搞砸它。

无论如何,如果你真的想要使用多个套接字框架,更好的想法就是使用不同的端口。但真的,只要坚持一个。我建议KryoNet做同样的事情,但远远少于代码行,如果你想要修改并易于理解的东西。我已经从我的KryoNet版本中修改了地狱。