Que tal, soy viejo lector del sitio / foro, pero apenas ahora escribo, no vengo a solicitar codigo ni que me hagan nada , solo simplemente solicito de la manera mas atenta si pueden ayudarme a ver que estoy haciendo mal, veran, tengo una aplicacion cliente/servidor, que "monitorea" una maquina desatendida, que esta hace calculos matematicos y demas, la aplicacion cliente que se instala en dicha maquina lo unico que tiene que hacer es mandar screenshots de la maquina en cuestion al servidor, donde regularmente son checados, ya tengo ambas aplicaciones (cliente y servidor) y ya "envian" datos, sin embargo, no logro "guardar" eso datos en el archivo, ejemplo, el cliente me envia una imagen bmp (screenshot.bmp) de 3.2mb, el servidor acepta el envio y segun el contador de bytes recibidos se reciben todos los bytes (los 3.2mb), pero cuando verifico el archivo generado (en la maquina donde esta el servidor) solo se guardan 54bytes, que verificando en el programa servidor es el ultimo paquete que se envia del cliente al servidor, aqui dejo el codigo de los programas
cliente...
Servidor...
segun yo, el problema esta en la parte de...
...pero no estoy ya del todo seguro, si alguien me puede ayudar se los agradeceria muchismp
cliente...
Código (vb) [Seleccionar]
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Buffer As String
Winsock1.GetData Buffer
estado.Text = estado.Text + vbCrLf + "Comando: " + Buffer
estado.SelStart = Len(estado.Text)
comandos (Buffer)
End Sub
Public Function comandos(comando As String)
If comando = "screenshot" Then
Picture1.Picture = CaptureScreen()
SavePicture Picture1.Picture, "c:\screenshot.bmp"
urlFile.Text = "c:\screenshot.bmp"
Open urlFile For Binary As #1
var_DataFile = Input(LOF(1), 1)
Close #1
var_DataSize = Len(var_DataFile)
estado.Text = estado.Text & vbCrLf & "Enviando informacion de datos..."
estado.SelStart = Len(estado.Text)
Winsock1.SendData "Envio|" & urlFile.Text & "|" & var_DataSize
End If
If comando = "enviar" Then
Call sendfile
End If
End Function
Public Function sendfile()
estado.Text = estado.Text & vbCrLf & "Enviando datos..."
estado.SelStart = Len(estado.Text)
Winsock1.SendData var_DataFile
End Function
Servidor...
Código (vb) [Seleccionar]
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Texto As String
Dim Ruta As String
Dim Peso As String
Dim suma As String
Dim Temporal As String
Winsock1.GetData Texto
If Mid(Texto, 1, 5) = "Envio" Then
estado.Text = estado.Text & vbCrLf & "Solicitando informacion del archivo..."
estado.Text = estado.Text & vbCrLf & Texto
estado.SelStart = Len(estado.Text)
Texto = Mid(Texto, 7, Len(Texto) - 5)
For i = 1 To Len(Texto)
If Mid(Texto, 1, 1) <> "|" Then
Ruta = Ruta + Mid(Texto, 1, 1)
ElseIf Mid(Texto, 1, 1) = "|" Then
Texto = Mid(Texto, 2, Len(Texto) - 1)
Exit For
End If
Texto = Mid(Texto, 2, Len(Texto) - 1)
Next
Peso = Val(Texto)
estado.Text = estado.Text & vbCrLf & "Ruta del archivo: " & Ruta
estado.SelStart = Len(estado.Text)
nomFile.Text = Ruta
estado.Text = estado.Text & vbCrLf & "Peso del archivo: " & Peso
estado.SelStart = Len(estado.Text)
pesoFile.Text = Peso
estado.Text = estado.Text & vbCrLf & "Solicitando archivo..."
estado.SelStart = Len(estado.Text)
Winsock1.SendData "enviar"
Else
If Len(Temporal) <> pesoFile.Text Then
Temporal = Temporal + Texto
bytes.Text = Len(Texto)
numSuma.Text = Val(numSuma.Text) + Val(bytes.Text)
End If
If numSuma.Text = pesoFile.Text Then
Open nomFile For Binary As #1
Put #1, 1, Temporal
Close #1
Ruta = ""
estado.Text = estado.Text & vbCrLf & "El archivo se recibio correctamente..."
estado.SelStart = Len(estado.Text)
End If
End If
End Sub
segun yo, el problema esta en la parte de...
Código (vb) [Seleccionar]
Temporal = Temporal + Texto
...pero no estoy ya del todo seguro, si alguien me puede ayudar se los agradeceria muchismp