TpktHeader.cs 830 B

123456789101112131415161718192021222324252627
  1. using Core.Communication.Transport;
  2. namespace PLC.Siemens.Protocol.Header
  3. {
  4. // TPKT Header - ISO on TCP - RFC 1006 (4 bytes)
  5. // Packet length : min 7 max 65535
  6. public class TpktHeader
  7. {
  8. public byte Version { get; set; } // Always 3 for RFC 1006
  9. public byte Reserved { get; set; } // 0
  10. public ushort Length { get; set; } //整个数据包的长度
  11. public ushort PacketLength { get{return 0x04;} }
  12. public void GetByteBuffer(ByteBuffer buffer)
  13. {
  14. buffer.Push(Version);
  15. buffer.Push(Reserved);
  16. buffer.Push(Length);
  17. }
  18. public void InitByBuffer(ByteBuffer buffer)
  19. {
  20. Version = buffer.PopByte();
  21. Reserved = buffer.PopByte();
  22. Length = buffer.PopUshort();
  23. }
  24. }
  25. }