【问题标题】:In Java, does something comparable to Python's socketserver exists?在 Java 中,是否存在类似于 Python 的 socketserver 的东西?
【发布时间】:2011-07-14 20:50:50
【问题描述】:

我目前正在用 Java 实现一个简单的 TCP 客户端和 TCP 服务器,在搜索示例时,我偶然发现了这个不错的 Python 框架:

http://docs.python.org/library/socketserver.html

编辑

我正在寻找一种解决方案,您可以通过这样的调用来创建 TCP 服务器:

TCPServer server = new TCPServer(port, RequestHandler);
server.serveForever();

所以,我有一个开箱即用的多线程服务器,我只需要实现 RequestHandler(可能是某种需要句柄方法的接口)。

Java 中有类似的东西吗?这似乎使实现网络服务器变得非常简单直接。

【问题讨论】:

    标签: java python sockets tcp


    【解决方案1】:

    你的意思是像java中的ServerSocket吗? http://www.google.co.uk/search?q=java+serversocket+tutorials

    如果它看起来很复杂,可能有一种更简单的方法来完成它。如果你有问题,我建议你问一个更具体的问题。

    【讨论】:

      【解决方案2】:

      不是核心语言,不是。您必须执行在大多数语言中设置侦听器、接受连接、检查输入等的常规操作。

      我确信有人为此构建了一个通用的“框架”,但老实说,它大约有 40 行代码,并且有 umteen 教程可以展示它。

      最类似的方法是使用 java NIO 类(1.4 及更高版本)并使用Selector 接受和轮询新连接和已连接套接字上的输入。

      【讨论】:

      • 请注意,java.nio 包中的 Selector 类是为单线程/非阻塞 IO 设计的。
      【解决方案3】:

      有一些很好的 Java 示例,您可以创建多线程服务器。我无法想象第三方 API 可以做些什么来使这更简单/更容易。

      【讨论】:

        【解决方案4】:

        我在这里找到了类似于上面 Python 代码可以做的事情(如您的帖子中所示): http://javawork.org/examples/

         final SocketListener listener = new SocketListener( 6060 );
         listener.start();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-18
          • 2011-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多