示例#1
0
            public void SendMessage <T>(T state)
            {
                SDKMessageOut messageWrapper = new SDKMessageOut();

                messageWrapper.Message.Initialize(state);
                SendMessageInternal(messageWrapper);
            }
示例#2
0
            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();
                }
            }