Buenas amigos, como andan ?
Últimamente estoy haciendo muchas preguntas, pero bueno, veamos el lado positivo, hay rotatividad en el foro :silbar:
Bueno, tengo el siguiente problema :
Buscar proc FtoF:DWORD
invoke FindFirstFile, FtoF, addr SFile
cmp eax, -1
je NoEncontrado
mov Hand, eax
Buccle:
invoke wsprintf, addr Bufi, addr Envio, addr SFile.cFileName
invoke send, sock, addr Bufi, sizeof Bufi, 0
cmp eax, SOCKET_ERROR
je ErSo
invoke FindNextFile, Hand, addr SFile
cmp eax, 0
je Salida
jmp Buccle
ErSo:
invoke WSAGetLastError
invoke dwtoa, eax, addr ErrNa
invoke MessageBox, 0, addr ErrNa, addr Titulo, MB_OK
Salida:
invoke FindClose, addr Hand
jmp Fin
NoEncontrado:
invoke send, sock, addr NoE, sizeof NoE, 0
Fin:
ret
Buscar endp
El problema al parecer es que el "Buccle" se ejecuta mas rápido de lo que el cliente puede procesar, o algo asi.. porque si pongo un mensaje entre ciclo y ciclo del bucle los datos llegan, pero si dejo la rutina asi, sin pausa alguna, al parecer algo se pisa el palito,, pero tampoco sale error de send.. :-\
Pone el codigo entero, al menos todo lo relacionado al problema.
ami me da pereza cuando leo codigos imcompletos por ejemplo tipos de variables, etc
Hola.. Perdon que respondo tan tarde, recien veo que no esta mi comentario anterior.. el problema ya esta resuelto.. Pongo la solucion:
SFile WIN32_FIND_DATA <> (Estructura para busqueda de archivos)
NoE db "MSG|Archivo no encontrado0", 0
EFile db "File|%s0", 0
EFold db "Fold|%s0", 0
ThreadBus proc FtoF:DWORD
invoke FindFirstFile, FtoF, addr SFile
cmp eax, -1
je NoEncontrado
mov Hand, eax
Buccle:
invoke FindNextFile, Hand, addr SFile
cmp eax, 0
je Salida
cmp SFile.cFileName, PUNTO
je Buccle
cmp SFile.dwFileAttributes, FILE_ATTRIBUTE_DIRECTORY
jne Files
;Envio las carptas
invoke wsprintf, addr Bufi, addr EFold, addr SFile.cFileName
invoke send, Sock, addr Bufi, sizeof Bufi, 0
jmp Buccle
Files:
;Envio los archivos
invoke wsprintf, addr Bufi, addr EFile, addr SFile.cFileName
invoke send, Sock, addr Bufi, sizeof Bufi, 0
jmp Buccle
Salida:
invoke FindClose, addr Hand
jmp Fin
NoEncontrado:
invoke send, Sock, addr NoE, sizeof NoE, 0
Fin:
ret
ThreadBus endp
Justo ahora lo estoy por arreglar, porque funciona bastante bien, pero no es optimo del todo :p
Esta funcion (ThreadBus) tiene que ser llamada como un thread para que funcione bien..
Saludos!