Esempio n. 1
0
 /// <summary>
 /// Handles the network message and hands it to the correct Handler
 /// </summary>
 /// <param name="message"></param>
 private void HandleMessage(UdpReceiveResult message)
 {
     if (message != null && message.Buffer != null && message.Buffer.Length > 0)
     {
         ParentSocket.HandleMessage(message.Buffer, message.RemoteEndPoint.Address);
     }
 }
        public override async Task ListenAsync(IPEndPoint ReceiveEndPoint)
        {
            _listening = true;

            _socket.OnMessage((msg, sender) =>
            {
                var data = System.Text.Encoding.UTF8.GetBytes(msg);
                ParentSocket.HandleMessage(data, ReceiveEndPoint.Address);
            });

            await Task.CompletedTask;
        }
Esempio n. 3
0
 /// <summary>
 /// Wysyła zapytanie do serwera
 /// </summary>
 /// <exception cref="RequestStateException">Rzucany, jeśli zapytanie zostało już wysłane i następuje ponowna próba wysłania zapytania</exception>
 public void Send()
 {
     if (RequestState == RequestState.CREATED)
     {
         RequestState = RequestState.SENT;
         _SentAt      = DateTime.Now;
         ParentSocket.WriteData(RequestData);
         ParentSocket.TcpClient.GetStream().Flush();
     }
     else
     {
         throw new RequestStateException("Request has already been sent");
     }
 }
Esempio n. 4
0
        public override async Task ListenAsync(IPEndPoint ReceiveEndPoint)
        {
            _listening = true;

            _socket.OnMessage((msg, sender) =>
            {
                var data = System.Text.Encoding.UTF8.GetBytes(msg);
                ParentSocket.HandleMessage(data, ReceiveEndPoint.Address);
            });

#if NET45
            await Task.Run(() => { });
#endif
#if NETSTANDARD16 || NETCOREAPP10
            await Task.CompletedTask;
#endif
        }
Esempio n. 5
0
        public override async Task ListenAsync(IPEndPoint ReceiveEndPoint)
        {
            if (Listener == null)
            {
                Listener = new TcpListener(ReceiveEndPoint);
            }

            _listening = true;
            TcpClient listenerClient;

            Listener.Start();
            while (_listening)
            {
                try
                {
                    listenerClient = await Listener.AcceptTcpClientAsync();

                    if (!_listening)
                    {
                        break;
                    }
                    var stream = listenerClient.GetStream();
                    var data   = new StreamReader(stream).ReadToEnd();
                    Task.Run(() =>
                    {
                        var endpoint = (listenerClient.Client.RemoteEndPoint as IPEndPoint).Address;
                        ParentSocket.HandleMessage(data, endpoint);
                    });
                }
                catch (OperationCanceledException)
                {
                }
                catch (Exception)
                {
                    _listening = false;
                    Listener.Stop();
                    throw;
                }
            }
            Listener.Stop();
            _listening = false;
        }