как найти доступный порт перед привязкой сокета к конечной точке?

Я разрабатываю серверно-клиентское приложение, использующее 3 порта [TCP SOCKET .Net 4.0]..
Таким образом, приложение дает пользователю возможность установить порт только для основного сокета. но я хочу, чтобы серверное приложение автоматически нашло доступный порт для двух других сокетов, чтобы оно отправляло значение порта клиенту, используя соединение с основным сокетом. затем клиент подключается к другому сокету, используя полученное значение порта.

вот небольшое пояснение:

  • основной сокет прослушивает настраиваемый порт. этот сокет принимает клиента для запуска команд отправки/получения. (файловый проводник/диспетчер задач/свойства/выключение/чат)
  • второй сокет предназначен для передачи файловтолько для передачи файлов, и он закрывается по завершении.
  • третий сокет предназначен только для приема/отправки скриншота .
  • [я знаю, вы можете сказать, что я должен использовать один и тот же сокет для передачи файлов и снимков экрана, но это немного сложно. я просто использую отдельные сокеты для каждого из них.]

    Итак, как мне найти доступный порт перед привязкой сокета к конечной точке? примерно так:

    int port = 10000;
    bool isAvailable = false;
    while(!isAvailable)
    {
        try
        { 
            // check if the port is available to use.
            isAvailable = true;
        }
        catch
        {
            port++;
        }
    } 
    
    16
    задан Murhaf Sousli 26 April 2016 в 21:45
    поделиться