Открытие портов с помощью TCP, а затем чтение и запись в них C # - PullRequest
0 голосов
/ 08 июня 2018

Я пишу программу - назовите ее A - которая откроет порты для связи с другой программой (например, Eclipse) - назовите ее B.

Поэтому каждый раз, когда я решаю, я хочу открытьновый порт, я делаю следующее:

  1. Создайте новый прослушиватель TCP со значением 0

    _listener = new TcpListener((IPAddress.Parse("127.0.0.1"), 0)
    

    , чтобы он открывал его на доступном порту.

  2. Получить номер порта, который был открыт

    int newp = ((IPEndPoint)_listener.LocalEndpoint).Port
    
  3. Отправлено программе B информация о том, какой порт будет открыт немедленно - в существующий порт

  4. Выполнить блокирующий вызов для принятия клиента

    TcpClient client =_listener.AcceptTcpClient()
    

Я вижу (с помощью netstat -anb), что порт "прослушивает"но соединение, кажется, не установлено, так как программы не продолжают обмениваться данными.

Также, если я пытаюсь получить поток для записи в этот порт - он завершается неудачно и выдает исключение.

NetworkStream stream = _client.GetStream();
stream.Write(...);

Большое спасибо всем заранее!

...