Передача docx через winsock

Пытаюсь передать с клиента docx и его принять на сервере. Проблема в записи байт в файл на стороне сервера. Приходят и уходят одинаковое количество байт. Но файл, который создается на стороне сервера намного меньше и не открывается. Файл передаю через TransmitFile. TXT уходит и приходит нормально.

Клиент:

    string sendbuf;
    int iResult;
    int recvbuflen = 256000;
    char recvbuf[256000];
    const TCHAR FileName[] = L"test.docx";
    HANDLE hFile = CreateFile(FileName, GENERIC_READ, 0, NULL,
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
.
.
.
iResult = TransmitFile(ConnectSocket, hFile, 0, 0, NULL, NULL, TF_USE_DEFAULT_WORKER);
Сервер:
long int iResult;
    char recvbuf[256000];
    long int recvbuflen = 256000;


    do {

        iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);
.
.
.
else if (iResult == 0) {
            fout.open("test.docx");
            fout << recvbuf;
            fout.close();
            printf("Connection closing...\n");
        }

Ответы (0 шт):