Здравствуйте, butcher. Сделал обработку ошибок:
while (BufLen>0)
{
Sleep(100);
BufLen=ServerSocket.Receive(lpBuf,65536,0);
// tema.Format("%d",BufLen);
// AfxMessageBox(tema);
// write to the file
if (BufLen<=0)
{
equal_flag=ServerSocket.GetLastError();
SetLastError(10000);
// equal_flag=ServerSocket.GetLastError();
if(equal_flag==WSAEWOULDBLOCK)
{
BufLen=1;
continue;
}
break;
}
fletter.Write(lpBuf,BufLen);
}
только очередная засада: даже когда данные кончаются все равно выдается ошибка WSAEWOULDBLOCK. Думал что он запомнил последнюю ошибку и не обновляет ее поэтому вставил строку: SetLastError(10000); но все равно продолжает генерироваться такая ошибка.