이 프로그램좀 봐주세요 ㅠ.ㅠ GPS 수신좌표 서버로 넘기기
프로그램을 만들었는데요...
PDA에서 수신한 GPS수신 좌표를 서버쪽으로 전송하는 것 입니다.
근데 NMEA Send 버튼을 누르면 그냥 꺼져버려요 프로그램이..ㅠ.ㅠ
UINT ComThread(LPVOID lParam)
{
....................
dlg->SendPacket(Buff); <-----이게 [ SendPacket(const char *cData) // 데이타를 보내준다 ] 여기로 보내서
..................... 서버로 전송시키는 건데... 이걸 주석처리하면 프로그램은 종료되지 않습니다..
대체 이유가 먼지 ㅠ.ㅠ
}
return 0;
}
void CAutoRecvDlg::SendPacket(const char *cData) // 데이타를 보내준다.
{
// Socket이 열리지 않은 경우
if(pSok == NULL)
{
MessageBox(_T("보내기 실패\nSocket Error"),_T("Send Try"),MB_ICONSTOP);
return;
}
char Buff[100]="";
memcpy(Buff,cData,strlen(cData));
// 열린 TCP/IP Socket 을 이용해 데이타를 보낸다.
pSok->Send(Buff,strlen(Buff));
}
디버깅 해보니까 프로그램 종료될때
pSok->Send(Buff,strlen(Buff));
여기서 걸리더군요...
근데 초보라 어찌해야할지 모르겠어요 ㅠ.ㅠ...
인용:memcpy(Buff,cData,strl
strlen(cData) 값이 Buff배열의 크기를 넘는지 확인해 보세요.
제가 봤을 때는 스택 오버 플로우가 원인이지 싶습니다.
댓글 달기