Вопрос

У меня есть эта простая функция Java, которая слушает один IP, используя сокеты:

void main()

(...)


Socket client = new Socket("192.168.9.2",63333);

DataOutputStream out=new DataOutputStream(client.getOutputStream());
DataInputStream in=new DataInputStream(client.getInputStream()); 

while (userInput == 1) {
      System.out.println(in.readLine());
}

(...)

И это работает нормально, но проблема в том, что я должен установить его, было 7.0, и выполнить основную функцию один раз, чтобы начать процесс.

Как я могу это сделать, было 7,0 ??

С уважением,
Педро

Это было полезно?

Решение

Согласно рекомендациям Java EE, вы должны избегать открытия гнезда в контейнере. Если вы все равно хотите, вам нужен способ начать это, у вас есть несколько вариантов.

Создайте фасоль сеанса EJB с помощью метода, который вы можете вызвать удаленно (RMI ...) и поместите материал в этот метод.

Если вы хотите начать автоматически с WAS, вы можете использовать таймер EJB, чтобы запланировать выполнение задачи.

Вы также можете создать сервлет, который после вызова делает это.

Вам следует рассмотреть возможность запуска потока для управления розеткой, но поток должен быть способен остановиться, когда условие достигает как while (userInput == 1).

Это звучит странно, чтобы сделать на сервере приложений, как было, но вы можете это сделать.

Мы выполняем некоторые подобные задачи в SAP XI, создав сеанс EJB, который запускает несколько потоков для управления клиентскими гнездами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top