> nLeft = GetFileSize(hFile, NULL); > nBytesRead = htonl(nLeft); > nBytesToRead = 4; > ret = sendto(SendSocket, > (char*)&nBytesRead, > nBytesToRead, > 0, > (SOCKADDR *) &RecvAddr, > sizeof(RecvAddr)); > > while (nLeft > 0) > { > ReadFile(hFile, SendBuf, nBytesToRead, > &nBytesRead, NULL) ; > ret = sendto(SendSocket, > SendBuf, > BufLen, > 0, > (SOCKADDR *) &RecvAddr, > sizeof(RecvAddr)); > nLeft -= ret; > } > CloseHandle(hFile); ReadFile-памаметр nBytesToRead равен 4. Т.е. у тя читаецца по 4 байта с файла для каждой посылкой. А шлеться в сеть мусор.. Ну это ладно - на скорость не влияет, учитывая что мусор шлеться размер файла/размер буфера раз Ж)
Лучше бы добавить флаг FILE_FLAG_SEQUENTIAL_SCAN в создании файла..
Размер блока данных лучше определять через getsockopt(..SO_MAX_MSG_SIZE..)
А какая скорость при посылке на на мультикаст а на существующий в сети ип?
|