Java MINA公开socket
我正在使用一个使用NIOAcceptor的MINA实现
我的任务是与其他java.net.Socket
框架以及Apache的MINA-NIO框架建立一个基本的java.net.Socket
框架接口。
这应该足够简单,将原始socket从MINA传递到我的框架
然而,我还没有成功地公开原始socket。这是我第一次看到MINA框架,我感到非常困惑
我得到的最接近结果是:
((SocketChannel)((NioSession)sess).channel).socket()
这本可以解决我的问题,除非NioSession.channel
受到保护
我是不是遗漏了什么
# 1 楼答案
没有多少框架允许您访问底层套接字。只有当其他线程没有锁定它时,一个线程才能真正安全地使用它。在这里,MINA使用封装将其锁定,并且他们使用异步选择器模型,因此您不应该触碰套接字,否则会把它弄糟
无论如何,如果您真的想使用多个套接字框架,最好的办法是只使用不同的端口。真的,不过,只要坚持一个。我建议KryoNet如果你想做一些你可以修改并且容易理解的事情,那么它也可以做很多相同的事情,但是代码行要少得多。我已经把我的KryoNet版本改造得一塌糊涂了