Dateien mit Winsock senden
-
jo hi auch, ich weiß, dieses thema wurde schon tausendma befragt, aber wie gehtn das jez?, erklärt einem armen dummen jungen doch wie man das macht, also das send() und recv() vorkommen muss is selbs mir klar, aber wie mach ich die klein, bastel die datein wieder zusammen und schreibe die dann in datein??...danke für jegwelche antworten!!!
-
Du öffnest die Datei liest immer x Bytes ein schickst die mit send() und mit recv() liest du immer y Bytes ein und schreibst die in ne Datei.
Vllt. solltest du erstmal so etwas mit dem Bearbeiten von Dateien üben bevor du dieses versendest.
-
jo danke
hab auch schon damit angefangen, falls ich nochma fragen hab meld ich mich nochmal!!! 
edit: so und da gehts auch schon los, hab nu ne datei geöffnet, in den speicher geholt und damit ne neue datei gemacht, aber wie bekomm ich das jez hin, das ich (zunächst) daraus 2 gleichgroße brocken mache und die dann wieder zusammenfüge??
edit II:LOOOOOOOOL
wenn man ne mp3 halb so groß macht...also übern speicher und so funktioniert die immer noch und spielt die erste hälfte....einige von euch werden...ach du scheisse was für ein trottel, aber mich freut das ungemein!!!!!
-
ok, hab jez hinbekommen, dass die datei in 2 gesplittet wird und die beiden(mp3's) auch logisch zusammenpassen (ende von 1 =anfang von2), aber wieso funktioniert das:
HANDLE hFile=CreateFile(TEXT("c:\\Wham! - Make me up before you go-go.mp3"),GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(hFile == INVALID_HANDLE_VALUE) { printf("datei konnte nicht geoeffnet werden!\n"); return 0; } else { printf("Datei geoeffnet...\n"); } DWORD dwFileSize=GetFileSize(hFile,NULL); printf("Groesse: %d kb\n",dwFileSize/1024); LPTSTR Buf=new TCHAR[dwFileSize+1]; LPTSTR Buf2=new TCHAR[dwFileSize+1]; DWORD dwBytesRead=0; DWORD dwBytesRead2=0; ReadFile(hFile,Buf,dwFileSize/2,&dwBytesRead,NULL); ReadFile(hFile,Buf2,dwFileSize/2,&dwBytesRead2,NULL); Buf[dwBytesRead]='\0'; CloseHandle(hFile); DWORD dwBytesWritten=0; HANDLE hNewFile= CreateFile(TEXT("c:\\2.mp3"),GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); WriteFile(hNewFile,Buf,dwBytesRead,&dwBytesWritten,NULL); DWORD dwBytesWritten2=0; HANDLE hNewFile2= CreateFile(TEXT("c:\\2223.mp3"),GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); WriteFile(hNewFile2,Buf2,dwBytesRead2,&dwBytesWritten2,NULL); CloseHandle(hNewFile); CloseHandle(hNewFile2); delete[] Buf; delete[] Buf2; return 0;
-
-
Mit (dwFileSize/2) musst du aufpassen!
Nehmen wir mal an eine Datei ist 1023 Bytes groß.
1023/2 würde beim DWORD-Datentyp nun 512 ergeben.Demnach würdest du in die erste Datei 512 Bytes schreiben,
aber in die 2. auch 512 Bytes. Deine 2. Datei ist also einen Byte zu groß...