Header 패킷
--------------------------------------------------------------------------------------
OUR SAMPLE2.5 | size | type | cmd |
-------------------------------------------------------------------------------------
16 byte 4 4 4
------------------------------------------------------------------------------------
typedef struct HEADER
{
char name[16];
DWORD size;
DWORD type;
DWORD cmd;
}Header;
COMMAND 패킷
--------------------------------------------------------------------------------------
Header | param1 | param2 | reserved
-------------------------------------------------------------------------------------
28 byte 128 128 16
------------------------------------------------------------------------------------
typedef struct COMMAND
{
DWORD param1;
DWORD param2;
DWORD Reserved[4];
}COMMAND;
외와 같은 VC++형 구조체 및 메시지 포맷이 있습니다.
위 COMMAND 패킷을 소켓을 통해 보내서 서버에 접속 요청 메시지를 보내야 합니다.
조건은 아래와 같습니다.
type : 2
size : 300 byte
cmd : 0x0001001
param1 : userID --> USER ID 없습니다.
param2 : User password --> password 는 '1'입니다.
위 메시지 규격을 바탕으로 clientsocket 을 이용하여 서버에 보냅니다.
정상적으로 서버에서 응답이 올경우에는 아래와 같이 받거든요.
cmd : 0x0001002
param1 : 1 -> OK
2 -> Wrong password
3 ->Wrong userid
VC++로 짠 위 규격을 델파이로 변환하여 보낼라고 합니다.
고수님들의 조언부탁드립니다..
TPackHeader = record
szName : array[0..15] of char;
dsize : dword;
dtype : dword;
dcmd : dword;
end;
TPackCommand = record
dParam1 : dword;
dParam2 : dword;
dReserved : array[0..3] of dword;
end;
TSendPack = record
pPackHeader : TPackeHeader;
pPackCommand : TPackCommand;
end;
글쎄요..typedef struct 의 형태를 보고 잡아보았는데
저런식으로 변환을 하면 될것 같네요..(물론 테스트는 안해봤습니다.)
그리고 SendPack 에 묶어서 클라이언트 소켓을 통해 보내면 될것 같은데
저의 짧은 지식으로는 Command 구조체에서 param 값들이 DWORD 인데 왜
128byte 가 나오는지... 잘 모르겠군요.
지나가다 저의 짧은 지식을 한탄하며....ㅜ..ㅜ
Ben