Response.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.IO;
  2. using System.Text;
  3. namespace FunnyCommon.Remoting.Protocol
  4. {
  5. public class Response
  6. {
  7. public bool Success { get; set; }
  8. public string Message { get; set; }
  9. public byte[] ToBytes()
  10. {
  11. //var msg = Message ?? "";
  12. //var msgLen = (byte)Encoding.UTF8.GetByteCount(msg);
  13. //var buf = new byte[msgLen + 2];
  14. var buf = new byte[1];
  15. buf[0] = (byte)(Success ? 1 : 0);
  16. //buf[1] = msgLen;
  17. //Encoding.UTF8.GetBytes(msg, 0, msg.Length, buf, 2);
  18. return buf;
  19. }
  20. public static Response ReadFromStream(Stream stream)
  21. {
  22. using (var br = new BinaryReader(stream, Encoding.UTF8, true))
  23. {
  24. var succ = br.ReadByte();
  25. //var msgLen = br.ReadByte();
  26. //var msgBuf = br.ReadBytes(msgLen);
  27. var obj = new Response
  28. {
  29. Success = succ == 1,
  30. //Message = Encoding.UTF8.GetString(msgBuf)
  31. };
  32. return obj;
  33. }
  34. }
  35. public override string ToString()
  36. {
  37. return (Success ? "Success" : "Fail")
  38. + (string.IsNullOrWhiteSpace(Message)
  39. ? ""
  40. : $", Message:{Message}"
  41. );
  42. }
  43. }
  44. }