Для работы REST-сервисов требуется базовый адрес(а), например, http://localhost:8888, но бывает, что порт 8888 занят. В таком случае надо найти свободный порт. Сделать это можно следующим методом:
public static int FindFreePort() |
| // если порт занят, то его нельзя использовать с другим адресом. |
| var listerner = from ip in IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpListeners() |
| var active = from ip in IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpConnections() |
| select ip.LocalEndPoint.Port; |
| List<int> ports = new List<int>(listerner.Union(active).Distinct()); |
| for (int port = 1024; port < 65535; port++) |
| if (ports.Contains(port) == false) |
Привилегированные (или зарезервированными) порты: 0 - 1023.
Зарегистрированные порты: 1024 – 49151.
Динамические порты: 49152 – 65535.
1 комментарий:
еще один способ здесь
Отправить комментарий