Ejemplo n.º 1
0
 private void WriterMain()
 {
     Message("Starting Write");
     try
     {
         while (!closed)
         {
             OutPackage p = writeQueue.Take();
             netStream.Write(BitConverter.GetBytes(p.Channel), 0, 4);
             netStream.Write(BitConverter.GetBytes(p.Data.Length), 0, 4);
             netStream.Write(p.Data, 0, p.Data.Length);
         }
     }
     catch (ArgumentNullException)
     { }
     catch (ObjectDisposedException)
     { }
     catch (SocketException)
     { }
     catch (Exception ex)
     {
         Error(ex);
     }
     Close();
 }
Ejemplo n.º 2
0
 public void Send(OutPackage pack)
 {
     if (closed)
     {
         return;
     }
     try
     {
         if (writeQueue.Count > 16)
         {
             Message("More than 16 packages queued up for dispatch. Closing down");
             Close();
             return;
         }
         writeQueue.Add(pack);
     }
     catch (Exception ex)
     {
         Error(ex);
         Close();
     }
 }
Ejemplo n.º 3
0
 public void SendData(OutPackage package)
 {
     sendUdpState.Client.BeginSend(package.PackageData, package.DataLength, new AsyncCallback(DefaultSendCallback), sendUdpState);
 }