/// <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; }
/// <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"); } }
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 }
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; }