private void SenderRun() { LogInfo("Sender Running..."); try { EndPoint endPoint = client.Client.RemoteEndPoint; foreach (var item in sendQ.GetConsumingEnumerable()) { try { stream.Write(BitConverter.GetBytes(item.Length), 0, sizeof(int)); stream.Write(item, 0, item.Length); } catch { ClientSendFailed?.Invoke(this, new EventArg <EndPoint>(endPoint)); } } } catch (Exception) { } LogInfo("Sender stopped."); }
private void SenderRun() { LogInfo("Sender Running..."); try { foreach (var item in sendQ.GetConsumingEnumerable()) { try { var stream = remoteClients[item.Key].GetStream(); stream.Write(BitConverter.GetBytes(item.Value.Length), 0, sizeof(int)); stream.Write(item.Value, 0, item.Value.Length); //LogInfo($"Dequeued a msg and sent to {item.Key}"); } catch { remoteClients.TryRemove(item.Key, out var _); ClientSendFailed?.Invoke(this, new EventArg <EndPoint>(item.Key)); } } } catch (ObjectDisposedException) { } LogInfo("Sender stopped."); }