Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Winsock und Streams

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.02.2006, 11:37 Uhr
~Sourcer0r
Gast


Hallo! Ich bin grade an der Winsock Programmierung und will dateien verschicken. Dazu teile ich die Datei bsp Install.log in 16byte teile und schicke diese an den Server, der sie wieder zusammensetzt und in einer Datei speichert..
Das Problem ist: es werden die ersten und die letzten 16 Stellen weggelassen. Kann mir da jemand helfen?


C++:
//////////////////////////////Client
FILE *fh_in;
char Chunk[16];
long filesize;
long chunksize = 16;
long bytesread = 0;
int prozent = 0;
int groesse = 0;
int packet = 0;
char buffor;
fh_in = fopen( "E:\\INSTALL.LOG", "rb" );
fseek( fh_in, 0, SEEK_END );
filesize = ftell(fh_in);
fseek( fh_in, 0, SEEK_SET );

cout << "Datei Groesse: " << filesize << "\n";
groesse = filesize/chunksize;
cout << "Packete zu senden: \n" << groesse << "\n";
cout << "\nFortschtritt:\n";

while( fread( Chunk, chunksize, 1, fh_in ))
{
packet++;
prozent = 100 * packet / groesse;
printf("\b\b\b\b\b\b\b\b\b%d%%", prozent);
printf(" (%d)", packet);
bytesread += chunksize;
if( bytesread > filesize - chunksize )
chunksize = filesize - bytesread;
send(sock,Chunk,chunksize,0);
Sleep(100);
}
send(sock,"finished",strlen("finished"),0);
printf("Fertig\n");
fclose(fh_in);
goto sendlabel;

//////////////////////////////Server
FILE *fh_out;
char Chunk[16];
long filesize;
long chunksize = 16;
long bytesread = 0;
int prozent = 0;
int groesse = 0;
int packet = 0;
fh_out = fopen( "e:\\neu.log", "wb" );
cout << "Fange an!";

while(!( Chunk == "finished" ))
{
cout << "Mache grad\n";
recv_size = recv(client_socket, Chunk,chunksize ,0);
Chunk[recv_size]='\0';
if (!strcmp(Chunk, "finished")){goto uploadlabel;}
fwrite( Chunk, chunksize, 1, fh_out );
}
uploadlabel:
fclose(fh_out);
printf("Fertig\n");



mod edit: benutze die Board Tags selber!

Dieser Post wurde am 07.02.2006 um 17:31 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.02.2006, 17:31 Uhr
Pablo
Supertux
(Operator)


und was hat das mit ANSI C/C++ zu tun?
-->
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: