Witam mam problem z przeslaniem pliku binarnego
ze zwyklymi plikami tekstowymi radzi sobie dobrze, ale gdy jest binarny to dostaje dokladnie taka sama ilosc bajtow jaka wersja orginalna, ale gdy ja uruchamiam program pokazuje "wyslij raport o bledach) i zamyka sie

const char* nazwapliku;
     int length;
                                 char * buffer;

                                    ifstream is;
                                     is.open (nazwapliku, ios::in | ios::binary);
                                   // is.open (nazwapliku);

                                    is.seekg (0, ios::end);
                                    length = is.tellg();
                                    is.seekg (0, ios::beg);
                                    buffer = new char [length];

                                    is.read (buffer,length);
                                    is.close();
                                   
               buffer[length] = '\0';
               
                  int cos = length;
                  cos = htonl(cos);
     
        send(sock, reinterpret_cast<char const*>(&cos), sizeof(cos), 0);
        send(sock,buffer,length,0);

strona odbierajaca:

string pliki;
 int downl, i = 0;
                         
                          int odebrane = 0;
                          recv(newsock[nr_ipeka], reinterpret_cast<char*>(&odebrane), 4, 0);
                          odebrane = ntohl(odebrane);
                         
                         
                          char nazwa_pliku[odebrane];
                          memset(&nazwa_pliku,0,odebrane);
                             
                               downl = recv(newsock[nr_ipeka], nazwa_pliku,odebrane,0);
                             
                          nazwa_pliku[downl] = '\0';
                          //MessageBox(NULL,nazwa_pliku,"alert",MB_OK);
                         
                                        DWORD  dwZapisane;
                                        HANDLE hPlik;
                                       
                                        string zap = "C:\\3OKO\\";
                                               zap += pliki;
                                           hPlik = CreateFile(zap.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);  
                                     
                                           
                                            WriteFile(hPlik, nazwa_pliku, odebrane, &dwZapisane, NULL);
                                       
                                        CloseHandle(hPlik);