У меня есть приложение, которое необходимо связать с клиентом на удаленной машине.Может быть несколько экземпляров этого приложения, работающего на сервере, каждый из которых обслуживает другого клиента, вероятно, 25-30 пар.
Каждая пара сервер-клиент должна иметь два tcp-соединения.Серверное приложение имеет 2 процесса, и каждый процесс имеет свое собственное tcp-соединение с клиентом.
- Процесс A обменивается командами с клиентом
- Процесс B получает постоянный видеопоток от клиента.
Кроме того, между каждой парой имеется другое tcp-соединение.Процесс A / Процесс B
Команды / Данные будут поступать следующим образом:
Клиент <-> Процесс A <---> Процесс B
во время передачи видеов этом направлении:
client -> Process B
Мне нужна помощь, чтобы определить, как лучше всего установить все соединения tcp.Кто настраивает слушателей?Как определить порты, которые будут использоваться?и т. д.
В настоящее время у меня есть один экземпляр Процесса A, взаимодействующий как с Процессом B, так и с клиентом, но он все работает на одной машине, поэтому сейчас я просто использую «localhost» в качестве имени хоста.Я также жестко кодирую 2 порта, которые я использую, поэтому мне нужно также изменить это, когда у меня есть несколько экземпляров, чтобы каждый экземпляр использовал разные порты.
Как только Процесс A устанавливает соединение с Клиентом, ему нужнозапросить у клиента порт, чтобы процесс B мог установить другое соединение напрямую с клиентом.Это хороший способ сделать это, или как лучше?Как клиент может определить, какой порт доступен для использования?
Также приветствуется любая помощь или указатели о том, как назначить порты, чтобы это могло работать с несколькими экземплярами.
Спасибо, пожалуйстазадавайте любые вопросы обо всем, что не ясно.
РЕДАКТИРОВАТЬ: На самом деле процесс A и процесс B являются двумя различными приложениями.