我正在使用一个使用NioAccepter的MINA实现。
我的任务是建立一个基本的java.net.Socket框架与其他java.net.Socket框架以及Apache的MINA NIO框架的接口。这应该很简单,将原始套接字从MINA传递到我的框架。
但是,我还没有成功地公开原始套接字。这是我第一次看到MINA框架,我很困惑。
我最接近的结果是这样的:
((SocketChannel)((NioSession)sess).channel).socket()这本可以解决我的问题但NioSession.channel是受保护的。
我是不是漏掉了什么?
发布于 2011-05-05 01:04:51
没有多少框架能让你访问底层的套接字。只有当其他线程没有锁定某个线程时,它才是真正安全的。在这里,MINA使用封装来锁定套接字,而他们使用的是异步选择器模型,所以您根本不应该接触套接字,否则会搞砸的。
无论如何,如果你真的想使用多套接字框架,一个更好的想法是只使用不同的端口。不过,真的,还是坚持用一个吧。我建议KryoNet做同样的事情,但代码行数要少得多,如果你想做一些你可以修改的东西,而且很容易理解。我已经对我的KryoNet版本进行了该死的建模。
https://stackoverflow.com/questions/5886977
复制相似问题