|
네..다시 자세하게 말씀드릴게여..
음..그러니깐여..
채팅 프로그램인데 파일 전송 기능에서
4kb씩 읽어서 전송을 하는데여...
char fileDataBuf[4096] = {0};
iFileLength = FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
iBytesRead = FileRead(iFileHandle, fileDataBuf, 4096);
send(m_Socket, fileDataBuf, strlen(fileDataBuf), 0);
FileRead 는 파일을 읽을때 바이너리 모드로 읽는 옵션이 없더라구여..
그래서 워드 파일 같은 경우 그냥 읽어서 상대편에 전송을 하면 제대로 전송이 안되고 깨지고 그래서
위에서 읽어 들인 데이터를 바이너리로 변환을 해서 전송을 하려고 하거든여..
iBytesRead = FileRead(iFileHandle, fileDataBuf, 4096);
<fileDataBuf를 바이너리로 변환 후>
//전송
send(m_Socket, fileDataBuf, strlen(fileDataBuf), 0);
이런식으로여...
그래서 바이너리로 변환이 필요한테 어떻게 하는지 잘 모르겠어여..
아무리 찾아봐도 보이지 않네여...
근데 이렇게 하면 워드 파일 같은 경우 제대로 전송이 되나여?
FileRead에서 바이너리 파일을 어떻게 읽고 쓰죠?
금목암 님이 쓰신 글 :
: 파일을 만약 unsigned char나 char로 읽어들이셨으면 해당 버퍼에 문자의 hex값이
: 있습니다 문제는 intel hex파일이면 해석해야하고 그냥이면 해석할 필요없습니다
:
: 보낼때 한자씩 띄어서 보내면 되죠 ..
: 좀더 자세히 원하는걸 써보세요 그래야 방법도 나오죠
|