Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - darckbaston

#1
En C/C++ claro que se pueden crear juegos, como en muchos otros lenguajes de programacion.

Mi recomendacion es que si empieces leyendo distintos libros y articulos de programacion para juegos o formas de crear juegos. Y si estas decidido busca tu motoro de juego, es como distintas librerias que vienen con funciones que te ayudan a crear tus juegos. Hay muchas como SDL, Allegro, DarkGDK (la que uso yo) o sino tambien puedes hacerte una propia lo cual es muy complejo para empezar.
#2
Hola, los otros dias se me dio al curiosidad de aprender sockets y aca esto. Mi problema es que cuando envio un archivo (en este caso una imagen png) me envia la mitad y entonces no se puede abrir la imagen en el formato que le corresponde.

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):

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:
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!.