Este es el codigo del cliente donde envio el archivo (no paso la conexión y eso por que sino se hace un poco largo):
Código:
void FileSend( SOCKET sock, const char *dir )
{
int fSize = 0;
char szSize[30];
char szSend[3500];
FILE *file = fopen( "C:\\Lari\\Programacion\\Sockets\\fondo.png", "rb" );
fSize = GetFileSize( file );
printf(" Tamaño del archivo a enviar: %d\n\n", fSize );
sprintf( szSize, "%d", fSize );
send( sock, szSize, strlen(szSize), 0);
while( !feof( file ) )
{
fgets( szSend, 3500, file );
send( sock, szSend, 3500, 0 );
printf( "\tCopiando archivo....\n" );
};
fclose( file );
printf( "\n\nArchivo enviado correctamente....\n" );
}
Este es el del servidor que recive la informacion:
Código:
void FileRecive( SOCKET sock, int len )
{
char szSize[30];
char *szBuffer;
int iSize = 0;
int iRecv = 1;
FILE *file = fopen( "C:\\Lari\\Programacion\\Sockets\\fondo2.png", "wb+" );
printf( "Escribiendo archivo....\n" );
while( iSize == 0 )
{
iRecv = recv( sock, szSize, 30, 0 );
if( strlen(szSize) > 3 )
iSize = atoi( szSize );
}
printf( "Tamaño: %d", iSize );
szBuffer = new char[iSize];
do
{
if( iRecv == SOCKET_ERROR )
break;
iRecv = recv( sock, szBuffer, iSize, 0 );
fputs( szBuffer, file );
} while( iRecv != 0 );
printf( "\n\nArchivo recivido correctamente!!.\n" );
//printf( "\n\n\n ...................... \n\"%s\"\n", szRecv );
fclose( file );
}
Bueno si alguien puede saber porque se lo agradeceria mucho!
Si cometi algun error en la publicacion de este thread avisenmen porque es mi primer thread en este foro, gracias!.