Как мне начать прослушивание порта в протоколе TCP в определенном диапазоне ?
Например:
Проверяйте порты с 6001 по 7000, пока не найдете свободный
и начните слушать его, когда найдете.
когда кто-то еще пытается то же самое, он не может слушать тот же порт.
Спасибо.
-1
Tango_Chaser
10 Янв 2017 в 12:20
1
Найдите следующий TCP-порт в .Net
– huse.ckr
10 Янв 2017 в 12:23
1
Вам просто понадобится это и для цикла
– Lucifer
10 Янв 2017 в 12:53
1 ответ
Лучший ответ
Я нашел способ сделать это:
private static int initialPort = 6001; // initial port to search from
public static void StartServerTCP()
{
bool serverSet = false;
while (!serverSet && initialPort <= 7000)
{
try
{
Console.WriteLine(Dns.GetHostName() + ": (Server:TCP) Trying to setup server at port: {0} [TCP]", initialPort);
serverSocket.Bind(new IPEndPoint(GetIP(), initialPort));
serverSocket.Listen(0);
serverSocket.BeginAccept(AcceptCallback, null);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine(Dns.GetHostName() + ": (Server:TCP) Server setup completed at port {0} [TCP]\n", initialPort);
Console.ForegroundColor = ConsoleColor.Gray;
serverSet = true;
}
catch (Exception)
{
Console.WriteLine("\n" + Dns.GetHostName() + ": (Server:TCP) Port <{0}> is busy, trying a different one\n", initialPort);
initialPort++;
}
}
}
2
Tango_Chaser
14 Янв 2017 в 14:03
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.