Пример #1
0
 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.");
 }
Пример #2
0
 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.");
 }