file 변수는 포인터형이구 sizeof(file) = 4byte 입니다.
포인터 변수를 서버에 보내봤자... 서버에서 쓸곳이 없죠...
실제 데이터를 보내세요.
축구 님이 쓰신 글 :
: 브레이크 포인트찍어서 봤는데여 클라이언트에서 보내는데 보낼때는 파일명과 파일크기가다 저장되여
:
: 근데 서버에서 받아놨다가 다른 클라이언트에 뿌려주는데 서버에서 전혀 못읽어 오네요 보낼때는 분명히 전부
:
: 보내는데 왜 서버에서 못받아 올까요?
:
:
: if(OpenDialog1->Execute())
: {
: header header;
: header.hcde = Efile;
: header.size = sizeof(file);
:
: file *file = new file();
: file->fname = new TFileStream(OpenDialog1->FileName, fmOpenRead|fmShareCompat);
: file->fsize = file->fname->Size;
:
: TBytes sendFile;
: sendFile.Length = sizeof(header);
: memcpy(&sendFile[0], &header, sizeof(header));
: sendFile.Length = sizeof(header) + sizeof(file) + file->fsize;
: memcpy(&sendFile[sizeof(header)], &file, sizeof(file));
: IdTCPClient1->Socket->Write(sendFile, sendFile.Length);
: }
:
:
: 보낼때 클라이언트구요
:
:
: TBytes receFile;
: file *file = new file();
:
: AContext->Connection->Socket->ReadBytes(receFile, sizeof(file));
: memcpy(&file, &receFile[0], sizeof(file));
:
:
: 이게 서버에서 받아오는건데 전혀 아무것도 안받아와요 ㅠㅠ 보낼땐 정보가 다 보내지는데
|