0
소켓 패킷의 데이터를 패킷으로 읽고 다른 버퍼에 쓰고 모든 데이터를 결합했습니다.소켓에서 데이터를 읽는 것이 다음 조건에서 중단됩니까?
BOOL _ReadPacket(PBYTE BufferRead, DWORD &Length, SOCKET Socket)
{
WSABUF Buffer;
DWORD Flags = 0;
int Result = 0;
FILE *file;
Buffer.buf = (char *)BufferRead;
Buffer.len = Length;
Flags = 0;
Result = WSARecv(Socket, &Buffer, 1, &Length, &Flags, NULL, NULL);
// if ((file=fopen("D:/test/test1/test1.txt","a+")) != NULL)
//{
//UINT val = Buffer.len;
//fprintf(file, "%d\n", val);
//
//fflush(file);
//fclose(file);
//}
return(Result != SOCKET_ERROR);
}
주석 처리 된 코드의 주석 처리를 제거하면 문제가 해결됩니다. 코드를 주석으로 남겨두면 왜 데이터가 손상됩니까?
'BufferRead'가 합법적입니까? 'WSARecv'에서 오류가 발생합니까? 'WSA 초기화'(또는 무엇이든) 했습니까? –