mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-07-02 10:38:16 +00:00
fix: add udpClient behavior to throttle receive errors and reset upon valid traffic arrival
This commit is contained in:
parent
d47cfd5e62
commit
18f7000d76
1 changed files with 17 additions and 0 deletions
|
|
@ -23,6 +23,7 @@ namespace PepperDash.Core
|
|||
private UdpClient client;
|
||||
private CancellationTokenSource receiveCancellationTokenSource;
|
||||
private bool connectEnabled;
|
||||
private bool connectionRefusedLogged;
|
||||
private SocketStatus clientStatus = SocketStatus.SOCKET_STATUS_NO_CONNECT;
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -367,6 +368,8 @@ namespace PepperDash.Core
|
|||
if (bytes == null || bytes.Length == 0)
|
||||
continue;
|
||||
|
||||
connectionRefusedLogged = false;
|
||||
|
||||
var text = Encoding.GetEncoding(28591).GetString(bytes, 0, bytes.Length);
|
||||
|
||||
this.PrintReceivedBytes(bytes);
|
||||
|
|
@ -385,6 +388,20 @@ namespace PepperDash.Core
|
|||
}
|
||||
catch (NetSocketException ex)
|
||||
{
|
||||
if (ex.SocketErrorCode == SocketError.ConnectionRefused)
|
||||
{
|
||||
if (!connectionRefusedLogged)
|
||||
{
|
||||
Debug.Console(1, Debug.ErrorLogLevel.Warning,
|
||||
"GenericUdpClient '{0}': Remote endpoint refused UDP traffic or is no longer listening",
|
||||
Key);
|
||||
connectionRefusedLogged = true;
|
||||
}
|
||||
|
||||
HandleDisconnected();
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.LogMessage(ex, "UDP receive error for {0}", this, Key);
|
||||
|
||||
if (AutoReconnect)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue