PacketSupoort는 다양한 타입을 손쉽게 Append 하여 byte 배열(Packet) 을 만들고, 파싱할 수 있는 .NET 라이브러리입니다.
이 라이브러리는 StringBuilder에서 영감을 얻어, 네트워크 패킷 · IoT 프로토콜 · 바이너리 파일 작성 등 바이트 배열 조작 이 필요한 곳에서 간결하고 안전한 코드를 제공합니다.
- 단일
Append()메서드로 모든 타입 지원
(byte, short, int, string, class …) - 체인 메서드 방식 → 가독성 높은 코드
- Endian 제어 (Little / Big Endian)
- 체크섬 계산 (Checksum8Type 지원)
- 클래스 직렬화/역직렬화 → byte 배열 <-> 객체 변환
- 기존 메서드(
AppendInt32,Appendint,@int)도 호환 가능
(네임스페이스 분리로 유지)
NuGet 패키지를 통해 설치할 수 있습니다.
dotnet add package PacketSupoortusing BytePacketSupport;
var builder = new PacketBuilder()
.Append(0x01, 0x02, 0x03, 0x04, 0x05)
.Build();
Console.WriteLine(builder.ToHexString());
// 출력: 0102030405var builder = new PacketBuilder()
.Append(1234) // int
.Append((short)1234) // short
.Append((uint)1234) // uint
.Build();var builder = new PacketBuilder()
.Append("HELLO") // 기본 ASCII
.Build();var builder = new PacketBuilder()
.Append(0xAA, 0xBB, 0xCC)
.Build();short value = 0x0102;
// 기본: Little Endian
var littleEndianPacket = new PacketBuilder()
.Append(value)
.Build();
// Big Endian
var bigEndianPacket = new PacketBuilder(
new PacketBuilderConfiguration() { DefaultEndian = Endian.BIG })
.Append(value)
.Build();var packet = new PacketBuilder()
.Append(0x01, 0x02, 0x03, 0x04)
.Compute(Checksum8Type.Xor) // 전체 구간 XOR 체크섬 추가
.Build();var packet = new PacketBuilder()
.Append(0x01) // CMD
.BeginSection("ChecksumArea")
.Append(0x02, 0x03, 0x04, 0x05)
.EndSection("ChecksumArea")
.Compute("ChecksumArea", Checksum8Type.Xor)
.Build();public class TestPacket
{
public int Value;
[ByteSize(3)] public string Value1;
[ByteSize(4)] public byte[] Data;
}
var packetData = PacketParse.Serialize(new TestPacket
{
Value = 100,
Value1 = "ABC",
Data = new byte[] { 0x10, 0x11, 0x12, 0x13 }
});
var parsed = PacketParse.Deserialize<TestPacket>(packetData);3.0부터는 Append() 하나로 타입을 자동 처리하는 방식을 권장합니다.
기존 메서드 (AppendInt32, Appendint, @int)는 삭제되지 않았으며 별도의 네임스페이스 참조 시 그대로 사용 가능합니다.
버전별 상세 변경점은 CHANGELOG 에서 확인하세요.
PacketSupoort는 네트워크 프로그래밍을 위한 "문자열 빌더" 같은 역할을 목표로 합니다. 타입에 상관없이 Append() 메서드로 데이터를 이어 붙이고, 최종적으로 byte 배열을 얻는 직관적 인터페이스를 제공합니다.
"Icon made by Freepik from www.flaticon.com" (Link)