public void Parse() { Assert.That(IPAddress.TryParse("127.0.0.1", out var address), Is.True); var endpoint = new IPEndPoint(address, 80); Assert.That(IPEndPointEx.Parse("127.0.0.1:80"), Is.EqualTo(endpoint)); Assert.That(IPEndPointEx.Parse(new ReadOnlySpan <char>("127.0.0.1:80".ToCharArray())), Is.EqualTo(endpoint)); Assert.Throws <ArgumentNullException>(() => _ = IPEndPointEx.Parse((string)null)); Assert.Throws <FormatException>(() => _ = IPEndPointEx.Parse(new ReadOnlySpan <char>("!**!".ToCharArray()))); Assert.That(IPEndPointEx.TryParse("127.0.0.1:80", out var parsed), Is.True); Assert.That(parsed, Is.EqualTo(endpoint)); Assert.That(IPEndPointEx.TryParse(new ReadOnlySpan <char>("127.0.0.1:80".ToCharArray()), out parsed), Is.True); Assert.That(parsed, Is.EqualTo(endpoint)); Assert.That(IPEndPointEx.TryParse("[0:0:0:0:0:0:0:1]:80", out parsed), Is.True); Assert.That(parsed.ToString(), Is.EqualTo("[::1]:80")); Assert.That(IPEndPointEx.TryParse("[::1]:80", out parsed), Is.True); Assert.That(parsed.ToString(), Is.EqualTo("[::1]:80")); Assert.That(IPEndPointEx.TryParse(new ReadOnlySpan <char>("!**!:80".ToCharArray()), out _), Is.False); Assert.That(IPEndPointEx.TryParse(new ReadOnlySpan <char>("127.0.0.1:xx".ToCharArray()), out _), Is.False); }
public void ConnectAsyncConnectionRefused3() { var endpoint = IPEndPointEx.Parse("127.0.0.1:11000"); using var server = new SocketListener(endpoint, SocketListenerMode.ConnectionRefused); using var socket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); // for some reason netstandard throws System.Net.Internals.SocketExceptionFactory+ExtendedSocketException // which derives from SocketException - use a constraint so NUnit is happy Assert.ThrowsAsync(Is.InstanceOf <SocketException>(), async() => { // socket exception, connection refused await socket.ConnectAsync(endpoint, CancellationToken.None); }); }
public async Task ConnectAsyncSuccess() { var endpoint = IPEndPointEx.Parse("127.0.0.1:11000"); using var server = new SocketListener(endpoint, SocketListenerMode.AcceptOnce); using var socket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); await socket.ConnectAsync(endpoint, -1); // connected! try { socket.Shutdown(SocketShutdown.Both); socket.Close(); socket.Dispose(); } catch { /* doesn't matter */ } }
public SocketListener(string address, SocketListenerMode mode) : this(IPEndPointEx.Parse(address), mode) { }