|
TBytes <-> 변수 의 변환은
RawToBytes, BytesToRaw 를 사용하세요
그리고 rcv_size 사이즈 확인 해 보시구요...
김명호 님이 쓰신 글 :
: 안녕하세요..빌도 초보자입니다.
: 제가 사용하는 환경은 빌더 2009입니다.
:
: 아래의 소스를 적용하면 패킷이 읽혀지지 않습니다.
: 또한, rcv_size를 강제로 32로 하면 데이터 수신은 되는데 CmdProcess()
: 를 수행하면 몇초후에 프로그램이 멈추는 현상이 발생합니다..
: 오늘 오후내내 고생하는데 해결이 안되네요..
: 고수님들의 조언 부탁드립니다.
:
:
: ------------------------ 아 래---------------------------------------
: void CmdProcess(byte *data, int size); // 수신 데이터 처리 모듈
:
: void __fastcall TfrmMain::IdTCPServer1Execute(TIdContext *AContext)
: {
: TByteDynArray bdaRx;
: byte rcv_data[1024];
: int rcv_size;
:
: rcv_size = AContext->Connection->IOHandler->ReadSmallInt(false);
: if(rcv_size > 0)
: AContext->Connection->Socket->ReadBytes(bdaRx, rcv_size, false);
:
: for(int idx = 0; idx < rcv_size; idx++)
: rcv_data[idx] = bdaRx[idx];
:
: CmdProcess(rcv_data, rcv_size);
: }
|