마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 PC간 소켓 통신 질문입니다.

0 추천

안드로이드보단 MFC 관련 질문이 더 가까운것 같습니다

소켓을 이용하여 안드로이드(서버)에서 이미지 파일을 전송하려 합니다

전송이 처음엔 잘 되는가 싶더니 파일 끝부분에서 자꾸 에러가 뜨는거 같아요

전송전 파일과 전송 후 파일의 크기 오차가 -마지막 버퍼(4096Byte) 미만입니다.

일단 안드로이드에서 송신하는 부분은 디버깅으로 끝까지 다 전송이 되는것을 확인해본 상태입니다.

MFC 클라이언트 수신 관련 부분입니다

void CConnectSocket::OnReceive(int nErrorCode)
{
CTestClinetDlg *main = (CTestClinetDlg*) AfxGetMainWnd();
char szBuffer[4096];
ZeroMemory(szBuffer, 4096);
files = fopen("jebal.JPG", "a");
int nRead = Receive(szBuffer, sizeof(szBuffer));
if(nRead >0)
{
// if(szBuffer[0] == 'E')  main->SetTimer(1,500,NULL); // 관련 없는 부분입니다.
 
fwrite(szBuffer,nRead,1,files);
i++;
}
CSocket::OnReceive(nErrorCode);
}
3일째 구글링 해대는데 도저히 모르겠습니다... 해결책좀 제시해주세요~
도와주세여 (140 포인트) 님이 2014년 12월 7일 질문

1개의 답변

0 추천
fclose가 안보이네요?

그외는 크게 문제가 안보여요

수신버퍼설정을  4096 이상으로하셨나요?

수신버퍼를 4096 이상으로 해서

한번에 받을 파일이 4096 이하면 별문제가 없어요

 

그런데 4096 이상이면 루프를 돌려서 큐방식으로 받아야 하구요

 

더 궁금한게 별도로 있다면 ..

doridori2013@nate.com (네이트온 가능)
익명사용자 님이 2014년 12월 9일 답변
...