Я пишу программу - назовите ее A - которая откроет порты для связи с другой программой (например, Eclipse) - назовите ее B.
Поэтому каждый раз, когда я решаю, я хочу открытьновый порт, я делаю следующее:
Создайте новый прослушиватель TCP со значением 0
_listener = new TcpListener((IPAddress.Parse("127.0.0.1"), 0)
, чтобы он открывал его на доступном порту.
Получить номер порта, который был открыт
int newp = ((IPEndPoint)_listener.LocalEndpoint).Port
Отправлено программе B информация о том, какой порт будет открыт немедленно - в существующий порт
Выполнить блокирующий вызов для принятия клиента
TcpClient client =_listener.AcceptTcpClient()
Я вижу (с помощью netstat -anb), что порт "прослушивает"но соединение, кажется, не установлено, так как программы не продолжают обмениваться данными.
Также, если я пытаюсь получить поток для записи в этот порт - он завершается неудачно и выдает исключение.
NetworkStream stream = _client.GetStream();
stream.Write(...);
Большое спасибо всем заранее!