Передача 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");
}