예제 #1
0
        byte[] ConvertToBytes(ProtocolMessage msg)
        {
            var asJson    = JsonConvert.SerializeObject(msg);
            var jsonBytes = Encoding.UTF8.GetBytes(asJson);

            var header      = $"Content-Length: {jsonBytes.Length}\r\n\r\n";
            var headerBytes = Encoding.UTF8.GetBytes(header);

            LogVerbose("(out) [" + asJson + "]");

            var data = new byte[headerBytes.Length + jsonBytes.Length];

            Buffer.BlockCopy(headerBytes, 0, data, 0, headerBytes.Length);
            Buffer.BlockCopy(jsonBytes, 0, data, headerBytes.Length, jsonBytes.Length);

            return(data);
        }
예제 #2
0
        void Send(ProtocolMessage msg)
        {
            msg.seq = _sequenceNumber++;

            var data = ConvertToBytes(msg);

            try
            {
                _output.Write(data, 0, data.Length);
                _output.Flush();
            }
            catch
            {
                // ignore
                // Log.Write( "Send error " + e );
            }
        }