Как вы запускаете серверную программу из Process и знаете, что порт начинает слушать? - PullRequest
0 голосов
/ 06 декабря 2011

Так вот моя проблема.Мне нужно запустить простую серверную программу, используя RunTime

. После запуска серверная программа начинает прослушивать порт, скажем, 1234. Затем мой код попытается подключиться к серверной программе через порт 1234. Вот мой код.

 Process p =   Runtime.getRuntime().exec(server program);
 //create a socket and trying to connect port 1234.

Но для запуска серверной программы требуется некоторое время.Итак, как лучше всего сказать, что сервер работает, а порт прослушивает, чтобы я не пытался подключить сервер слишком рано?

Спасибо

1 Ответ

1 голос
/ 06 декабря 2011

Вы должны опрашивать его. Добавьте цикл, который пытается подключиться к серверу и спит перед повторной попыткой. (Не забудьте ограничить количество повторных попыток ...)

Вы могли бы также перехватить поток вывода серверного процесса и найти какое-то ключевое слово в его выводе (например, «JBoss microcontainer запущен»), но это просто ... грязно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...