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(); }
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(); } }
public void SendData(OutPackage package) { sendUdpState.Client.BeginSend(package.PackageData, package.DataLength, new AsyncCallback(DefaultSendCallback), sendUdpState); }