예제 #1
0
        private static async Task RunClient(
            TestConnectionConfig clientConfig,
            Action serverCanDisconnect
            )
        {
            var config = new TestNetworkConfig(new TestNetworkConfigData()
            {
                Connection = clientConfig
            });
            var nwConfig = config.CreateNetworkStreamFactoryConfiguration(
                Encoding.UTF8,
                () => TaskUtils.False,
                null,
                null,
                null,
                null,
                null
                );

            (var socket, var stream) = await NetworkStreamFactory.AcquireNetworkStreamFromConfiguration(nwConfig.Item1, default);

            Assert.IsNotNull(socket, "Socket must not be null.");
            Assert.IsTrue(socket.Connected, "Socket must be connected.");
            stream.DisposeSafely();
            serverCanDisconnect();
        }
예제 #2
0
 private static async Task TestWithServer(
     EndPoint serverEP,
     ProtocolType protocolType,
     TestConnectionConfig clientConfig
     )
 {
     var serverCanDisconnect = 0;
     await Task.WhenAll(
         RunServer( serverEP, protocolType, () => serverCanDisconnect != 0 ),
         RunClient( clientConfig, () => Interlocked.Exchange(ref serverCanDisconnect, 1))
         );
 }