2010-07-08 66 views
0

我寫了一個非常簡單的服務器,它接受特定端口上的套接字連接,並通過該套接字與客戶端進行通信。 現在我有一個客戶端庫,它在J2SE應用程序中工作得很好。在servlet容器上打開套接字連接

但是,如果我嘗試在Servlet(Servlet是客戶端)中使用該庫來與服務器進行通信,則它不起作用。 不幸的是,沒有例外或者可以幫助我的東西。 相反,當使用lib時根本沒有任何反應。 這是對打開套接字的方法的調用,只是無限制地阻止 ,而沒有連接到服務器。

我認爲這可能是一個普遍的問題。 也許這樣的事情是不允許從一個Servlet內? 但即使不是,我會至少期望拋出一些異常。

順便說一句,Servlet Container是Tomcat。

有沒有人有一個想法,爲什麼這不起作用?

+0

你可以發佈你的代碼 – 2010-07-08 18:00:22

+0

我需要有點耐心,然後才能無限期地使用這個詞。我剛剛得到一個IOException:連接重置。 不知道,如果這有幫助。 是的,我可以發佈代碼。 我會盡快這樣做(必須首先「掌握它」)。 – Machisuji 2010-07-08 18:04:33

回答

0

確定這裏是否有實際的問題:

這似乎是在Windows和Linux之間的行爲差​​異。 我在Linux下開發了服務器+ lib,而Tomcat在Windows機器上運行。

其中,我告訴你的服務器通過ProcessBuilder執行命令 。 實際上無限期阻止的是Process#waitFor。

這是在Windows下。在Linux下它工作得很好,只要過程結束就會返回。 在Windows下,Process#waitFor僅在我讀取進程的InputStream時出於某種原因返回。

對不起!

相關問題