예제 #1
0
    private async Task Respond(TcpClient client, byte[] data, CancellationToken cancellation)
    {
        byte[] response;
        if (data[0] == (byte)0)
        {
            response = await codec.DecodeBinaryXML(new ArraySegment <byte>(data, 1, data.Length - 1).ToArray(), false).ConfigureAwait(false);
        }
        else if (data[0] == (byte)1)
        {
            response = await codec.EncodeBinaryXML(new ArraySegment <byte>(data, 1, data.Length - 1).ToArray()).ConfigureAwait(false);
        }
        else
        {
            response = new byte[0];
        }
        try
        {
            await client.GetStream().WriteAsync(response, 0, response.Length, cancellation).ConfigureAwait(false);

            await client.GetStream().FlushAsync().ConfigureAwait(false);
        } catch (Exception e)
        {
            Console.WriteLine(e.Message);
            Console.WriteLine(e.StackTrace);
        }
    }
예제 #2
0
 public string DecodeBinaryXML(byte[] encodedXML)
 {
     if (encodedXML == null)
     {
         return("");
     }
     return(m_wcfBinaryCodec.DecodeBinaryXML(encodedXML, false));
 }