在servlet容器上打开套接字连接

时间:2010-07-08 17:58:45

标签: java sockets servlets

我编写了一个非常简单的服务器,它接受特定端口上的套接字连接 并通过该套接字与客户端通信。 现在我有一个客户端库,它在J2SE应用程序中运行得非常好。

但是,如果我尝试在Servlet(作为客户端的Servlet)中使用该lib与服务器通信,则它不起作用。 不幸的是,没有例外或可以帮助我的东西。 相反,当使用lib时,没有任何反应。 这是对打开套接字的方法的调用,只是无限期地阻塞 虽然没有与服务器建立连接。

我认为这可能是一个普遍问题。 也许Servlet中不允许这样的事情? 但即使不是,我至少也会期待抛出一些异常。

顺便说一下,Servlet容器是Tomcat。

有没有人知道为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

好的,这里有实际问题:

这似乎是Windows和Linux之间的行为差​​异。 我在Linux下开发了server + lib,而Tomcat在Windows机器上运行。

我告诉你的服务器执行命令等等 通过ProcessBuilder。 实际上无限期阻止的是Process#waitFor。

这是在Windows下。在Linux下,它工作正常,并在过程完成后立即返回。 但在Windows下,当我因某种原因读取Process的InputStream时,Process#waitFor仅返回。

抱歉!