채팅 서버를 구현하기 전에 서버와 클라이언트가 주고 받을 패킷 구조를 설계하려고 한다.
✅ 구조
패킷의 형태는 헤더 파일 + 데이터 형태로 구성되고
헤더 파일은 총 5바이트의 크기를 가지며, 아래와 같은 변수로 구성된다.
struct EncodeHeader
{
unsigned char packetCode;
unsigned short packetLen;
unsigned char randXORCode;
unsigned char checkSum;
};
- packetCode: 1차적으로 패킷의 무결성을 확인하는 값으로 상수값으로 정해진다.
- packetLen: 데이터의 총 길이를 나타낸다. ( 기본적으로 바이너리 데이터이기 때문에 길이가 꼭 필요하다 )
- randXORCode: 패킷 데이터를 XOR 값을 이용해 암호화 시켜줄때 필요한 값이다.
- checkSum: XOR로 암호화 시킨 데이터를 기준으로 삼아 checkSum을 구해 데이터 변조 여부를 판단한다.
'ChattingServer' 카테고리의 다른 글
[ChattingServer] AcceptThreadProc (0) | 2025.06.01 |
---|---|
[ChattingServer] Session (0) | 2025.05.29 |
[ChattingServer] 직렬화 버퍼 (0) | 2025.05.29 |
[ChattingServer] 사용자 버퍼 (0) | 2025.05.29 |
[ChattingServer] 채팅 서버 시작 (0) | 2025.05.29 |