ReceiveMessageFromAsync() public method

public ReceiveMessageFromAsync ( SocketAsyncEventArgs e ) : bool
e SocketAsyncEventArgs
return bool
Example #1
0
        public void Start(IPEndPoint localEndPoint, CancellationToken token)
        {
            _token = token;

            _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            _socket.Bind(localEndPoint);

            EndPoint remote = new IPEndPoint(IPAddress.Any, 0);

            var args = new SocketAsyncEventArgs { RemoteEndPoint = remote };

            args.SetBuffer(new byte[BufferSize], 0, BufferSize);
            args.Completed += CompletedAsync;

            _socket.ReceiveMessageFromAsync(args);
        }
Example #2
0
 bool Utils.Wrappers.Interfaces.ISocket.ReceiveMessageFromAsync(SocketAsyncEventArgs e)
 {
     return(InternalSocket.ReceiveMessageFromAsync(e));
 }
        public async Task NetworkInterface_LoopbackInterfaceIndex_MatchesReceivedPackets(bool ipv6)
        {
            using (var client = new Socket(SocketType.Dgram, ProtocolType.Udp))
            using (var server = new Socket(SocketType.Dgram, ProtocolType.Udp))
            {
                server.Bind(new IPEndPoint(ipv6 ? IPAddress.IPv6Loopback : IPAddress.Loopback, 0));
                var serverEndPoint = (IPEndPoint)server.LocalEndPoint;

                Task<SocketReceiveMessageFromResult> receivedTask = 
                    server.ReceiveMessageFromAsync(new ArraySegment<byte>(new byte[1]), SocketFlags.None, serverEndPoint);
                while (!receivedTask.IsCompleted)
                {
                    client.SendTo(new byte[] { 42 }, serverEndPoint);
                    await Task.Delay(1);
                }

                Assert.Equal(
                    (await receivedTask).PacketInformation.Interface,
                    ipv6 ? NetworkInterface.IPv6LoopbackInterfaceIndex : NetworkInterface.LoopbackInterfaceIndex);
            }
        }