public void SendMessage <T>(T state) { SDKMessageOut messageWrapper = new SDKMessageOut(); messageWrapper.Message.Initialize(state); SendMessageInternal(messageWrapper); }
private void SendMessageInternal(SDKMessageOut messageOut) { if (!_open) { System.Console.WriteLine("Attempt to send message while not connected - " + messageOut.GetTag()); return; } try { MemoryStream stream = new MemoryStream(_MaxBufferSize); BinaryWriter writer = new BinaryWriter(stream); writer.Write((short)messageOut.Size); messageOut.Pack(stream); int packetSize = 2 + messageOut.Size; int bytesSent = _socket.Send(stream.GetBuffer(), 0, packetSize, SocketFlags.None); if (bytesSent != packetSize) { System.Console.WriteLine("Wrong number of bytes sent: " + bytesSent.ToString() + ", expected: " + packetSize.ToString()); } } catch (System.Exception e) { System.Console.WriteLine(e.Message); Close(); } }