有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    没有多少框架允许您访问底层套接字。只有当其他线程没有锁定它时,一个线程才能真正安全地使用它。在这里,MINA使用封装将其锁定,并且他们使用异步选择器模型,因此您不应该触碰套接字,否则会把它弄糟

    无论如何,如果您真的想使用多个套接字框架,最好的办法是只使用不同的端口。真的,不过,只要坚持一个。我建议KryoNet如果你想做一些你可以修改并且容易理解的事情,那么它也可以做很多相同的事情,但是代码行要少得多。我已经把我的KryoNet版本改造得一塌糊涂了