【问题标题】:servlet for implementing socket connection用于实现套接字连接的 servlet
【发布时间】:2009-08-30 18:12:52
【问题描述】:

如何使用正在侦听套接字连接端口的 Servlet 实现 Web 应用程序?

【问题讨论】:

  • 顺便说一句,远程客户端是用什么语言编写的?如果您在远程客户端中使用 Java,最好使用 RMI 甚至远程 EJB 调用。
  • 是的!客户端是用 Java 编写的。

标签: java servlets jakarta-ee sockets


【解决方案1】:

让 servlet 打开 ServerSockets 是一种不好的代码气味。这主要是因为容器负责管理套接字(以及其他资源,如工作线程、会话等)。

也就是说,我认为您首先不需要 servlet。除非您想访问容器的某些服务,否则最好使用 J2SE 应用程序来管理 ServerSocket。

【讨论】:

  • 然后我需要什么来实现这个?任何代码示例?我查看了上面发布的客户端/服务器示例。这是要走的路吗?
  • “视情况而定!!”。只要您不搞砸与 J2EE/JEE 容器开箱即用的功能相关的任何内容,就很容易使用 J2SE 开发服务器应用程序。如果您必须处理事务管理、状态管理、线程池等,请查看基于 HTTP 的消息交换格式,并使用 servlet。最终,这取决于您需要服务器做什么。
【解决方案2】:

我假设您不是指前门 HTTP 连接,您可以通过 servlet 容器免费获得它...但是如果您想添加一个管理服务,您可以创建一个侦听器线程来设置一些servlet 中的全局状态。请注意,这不被视为 kosher(我认为甚至可能违反 servlet 标准)。

【讨论】:

  • 我有一个远程客户端,不想使用 HTTP 而是 TCP 套接字连接到我的服务器,因此我希望我的 servlet 创建某种 serverSocket 并侦听客户端对套接字连接的请求。
  • Servlet 是一个非常具体的 HTTP 标准。如果您不想要 HTTP,则不应使用 servlet - 只需编写自定义客户端/服务器应用程序,正如 Helen 建议的那样。
  • 编辑:正如 Helen 和 Vineet 所建议的那样。信用到期的信用...... :-)
【解决方案3】:

不完全确定您想要实现什么,但如果您需要,可以查看client/server programming。除此之外,您可以正常实现您的 Web 应用程序,但将默认端口更改为适合您需要的任何端口。

【讨论】:

  • 请参阅我写给 Greg 的内容,我需要类似于客户端/服务器编程的东西,但我可以使用 servlet 实现它还是必须采用其他方式。
猜你喜欢
  • 1970-01-01
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 2016-09-01
相关资源
最近更新 更多