簡體   English   中英

Java TCPIP EJB線程

[英]Java TCPIP EJB Threads

我正在開發一個TCPIP應用程序,其中客戶端將信息發送到指定的端口,服務器將偵聽該端口。 我想實現以下目標:

重新連接到客戶端/端口,以查看在指定時間段后它是否處於活動狀態。

我實現了以下代碼:

@Stateless
@Local
public Listener implements ConnectionListener {

    public void listen() throws Exception {
         ServerSocket serverSocket = new ServerSocket(somePort);
         Socket socket = serverSocket.accept();
         while(!socket.isClosed()) {

         }
    }
}

public interface ConnectionListener {

    public void listen() throws Exception;
}

EJB技術如何做到這一點? 我知道while循環是錯誤的,但是可以包含什么。 我有兩種方法:

  • 等待一段時間重新連接

但是,我不希望使用線程方法。

我知道在EJB中有諸如EJBTimer之類的東西。 什么是實現此目標的最佳方法,以及如何在代碼中實現。 你能幫我改變while循環來做我想做的事情嗎?

同樣,客戶端沒有API可以調用此應用程序。 如何在啟動Application Server時觸發此實例,以便偵聽消息。 通常,這可以通過Servlet實現,但我認為這不會起作用。 有任何想法嗎?

這種功能處於您在EJB中要做的事情的“邊緣”。 通常,EJB不直接進行網絡類型活動,尤其是長期監聽。

您真正想要的是EJB單例。 這有點像一個獨立的實例,它可以執行更多高級功能,例如自定義並發/線程和(與您相關)啟動自定義套接字偵聽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM