private Task OnlyThrowsSocketExceptionOnNet()
        {
            var sut = new TcpSocketClient();
            var unreachableHostName = ":/totallynotvalid@#$";

            return sut.ConnectAsync(unreachableHostName, 8000);
        }
        private Task OnlyThrowsSocketExceptionOnWinRT()
        {
            var sut = new TcpSocketClient();
            var tooHighForAPort = Int32.MaxValue;

            return sut.ConnectAsync("127.0.0.1", tooHighForAPort);
        }
Exemplo n.º 3
0
        public async Task TcpSocketClient_ShouldSendReceiveData()
        {
            var bytesToSend = new byte[] {0x1, 0x2, 0x3, 0x4, 0x5};
            var len = bytesToSend.Length;
            var port = PortGranter.GrantPort();

            var listener = new TcpSocketListener();
            await listener.StartListeningAsync(port);

            var tcs = new TaskCompletionSource<bool>();
            listener.ConnectionReceived += async (sender, args) =>
            {
                var bytesReceived = new byte[len];
                await args.SocketClient.ReadStream.ReadAsync(bytesReceived, 0, len);

                var allSame =
                    Enumerable
                        .Zip(bytesToSend,
                            bytesReceived,
                            (s, r) => s == r)
                        .All(b => b);

                tcs.SetResult(allSame);
            };

            var client = new TcpSocketClient();
            await client.ConnectAsync("127.0.0.1", port);
            await client.WriteStream.WriteAsync(bytesToSend, 0, len);

            var ok = await tcs.Task;

            await listener.StopListeningAsync();

            Assert.True(ok);
        }
Exemplo n.º 4
0
        public Task TcpSocketClient_ShouldThrowNormalException_WhenNotPlatformSpecific()
        {
            var sut = new TcpSocketClient();
            var tooHighForAPort = Int32.MaxValue;

            return Assert.ThrowsAsync<ArgumentOutOfRangeException>(() => sut.ConnectAsync("127.0.0.1", tooHighForAPort));
        }
Exemplo n.º 5
0
        public Task TcpSocketClient_ShouldThrowPCLException_InPlaceOfNativeSocketException()
        {
            var sut = new TcpSocketClient();
            var unreachableHostName = ":/totallynotvalid@#$";

            return Assert.ThrowsAsync<Exception>(() => sut.ConnectAsync(unreachableHostName, 8000));
        }
Exemplo n.º 6
0
        private async Task SendTcpAsync(ClientInfo clientInfo, byte[] message)
        {
            var client = new TcpSocketClient();
            await client.ConnectAsync(clientInfo.IpAddress, SharedSettings.TcpPort);

            client.WriteStream.Write(message, 0, message.Length);
            await client.WriteStream.FlushAsync();

            await client.DisconnectAsync();
        }
        public async Task TcpSocketClient_ShouldBeAbleToConnect()
        {
            var port = PortGranter.GrantPort();
            var listener = new TcpSocketListener();
            await listener.StartListeningAsync(port);

            var sut = new TcpSocketClient();
            await sut.ConnectAsync("127.0.0.1", port);

            await listener.StopListeningAsync();

            // getting here means nothing went boom
            Assert.True(true);
        }
Exemplo n.º 8
0
        public static bool Connect()
        {
            if (ImageComparisonServer != null)
                return true;

            try
            {
                ImageComparisonServer = new TcpSocketClient();
                var t = Task.Run(async () => await ImageComparisonServer.ConnectAsync(XenkoImageServerHost, XenkoImageServerPort));
                t.Wait();
            }
            catch (Exception)
            {
                ImageComparisonServer = null;

                return false;
            }

            return OpenConnection();
        }
        /// <summary>
        /// Connects to the Logentries API Server.
        /// </summary>
        public void Connect()
        {
            if (_useHttpPut)
            {
                _httpClient = new HttpClient();
            }
            else
            {
                _socketClient = new TcpSocketClient();

                var task = _socketClient.ConnectAsync(_url, _tcpPort, _useSsl);

                task.Wait(new TimeSpan(0, 0, 30));
            }
        }
        public Task TcpSocketClient_Connect_ShouldCancelByCancellationToken()
        {
            var sut = new TcpSocketClient();
            
            var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
            var ct = cts.Token;

            // let's just hope no one's home :)
            return Assert.ThrowsAsync<OperationCanceledException>(()=> sut.ConnectAsync("99.99.99.99", 51234, cancellationToken: cts.Token));
        }
Exemplo n.º 11
0
        public async Task StartClient(string address, int port, bool needAck = true)
        {
            // Create TCP client
            var socket = new TcpSocketClient(2048);

            try
            {
                await socket.ConnectAsync(address, port);

                SetSocket(socket);
                //socket.NoDelay = true;

                // Do an ack with magic packet (necessary so that we know it's not a dead connection,
                // it sometimes happen when doing port forwarding because service don't refuse connection right away but only fails when sending data)
                if (needAck)
                    await SendAndReceiveAck(socket, MagicAck, MagicAck);

                Connected?.Invoke(this);

                isConnected = true;
            }
            catch (Exception)
            {
                DisposeSocket();
                throw;
            }
        }
Exemplo n.º 12
0
        public async Task<ITcpSocketClient> CreateResponseSocket()
        {
            var portAddress = Data.PortAddress;
            if (portAddress != null)
            {
                var result = new TcpSocketClient();
                await result.ConnectAsync(portAddress.Host, portAddress.Port);
                return result;
            }

            if (Data.PassiveSocketClient == null)
                throw new InvalidOperationException("Passive connection expected, but none found");

            return Data.PassiveSocketClient;
        }
Exemplo n.º 13
0
        public async Task<ITcpSocketClient> CreateResponseSocket()
        {
            var portAddress = Data.PortAddress;
            if (portAddress != null)
            {
                var result = new TcpSocketClient();
                await result.ConnectAsync(portAddress.Host, portAddress.Port);
                return result;
            }

            return Data.PassiveSocketClient;
        }