3using System.Net.Sockets;
23 ArgumentNullException.ThrowIfNull(platformIdentifier);
26 using var socket =
new Socket(
28 ? AddressFamily.InterNetworkV6
29 : AddressFamily.InterNetwork,
37 socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ExclusiveAddressUse,
true);
38 socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress,
false);
40 socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger,
true);
43 socket.DualMode =
true;
Extension methods for the Socket class.
static void BindTest(IPlatformIdentifier platformIdentifier, ushort port, bool includeIPv6, bool udp)
Attempt to exclusively bind to a given port .
static void WithProcessLaunchExclusivity(Action action)
Runs a given action making sure to not launch any processes while its running.