Como mandar un picturebox con winsock

Iniciado por Xephiro, 26 Diciembre 2006, 22:52 PM

0 Miembros y 1 Visitante están viendo este tema.

~~

Yo lo que siempre uso es un interruptor. Me explico  :P
El cliente envia al server el tamaño del archivo, el server lo recibe y manda la orden de que se envie el contenido del archivo a la vez q activa el interruptor (variable booleana) para indicar q todos los datos recibidos a partir de ese momento iran a un string q cuando tenga el mismo tamaño que el del archivo deseado se descargara totalmente en el archivo.
Aki un ejemplo:

Server:
Private Sub Form_Load()
ws.Close
ws.Connect "127.0.0.1", 2848
End Sub

Private Sub ws_Connect()
ws.SendData "Tam:" & FileLen("C:\Prueba.txt")
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Dim Send As String
ws.GetData data

If Left(data, 8) = "SendFile" Then
Open "C:\Prueba.txt" For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1

ws.SendData Send
End If

End Sub


Cliente:
Dim DataFile As String
Dim LenFile As Long
Dim Envio As Boolean

Private Sub Form_Load()
ws.LocalPort = 2848
ws.Listen
Envio = False
End Sub

Private Sub ws_ConnectionRequest(ByVal requestID As Long)
ws.Close
ws.Accept requestID
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
ws.GetData data

If Envio = True Then
DataFile = DataFile & data
ProgressBar1.Value = Len(DataFile)
If Len(DataFile) = LenFile Then
Open "C:\Prueba2.txt" For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Enviado Correctamente"
Envio = False
ProgressBar1.Value = 0
End If
End If

If Left(data, 4) = "Tam:" Then
LenFile = Mid(data, 5)
ProgressBar1.Max = LenFile
Envio = True
ws.SendData "SendFile"
End If


1S4ludo

CeLaYa

ya he encontrado el problema. El problema esque cuando uso la instrucción SavePicture me guarda el archivo como mapa de bits (bmp) y lo que hice es cambiar la imagen de BMP a JPG con una dll que me encontre. la Dll se llama GBITMAP.DLL

y se las dejo para quien la quiera:

http://www.geocities.com/cero780814/GBITMAP.zip

para usarla se hace de la siguiente manera:


    bitmap.LoadFileBmp ("c:\x.bmp") 'Cargar el archivo bmp
    If bitmap.SaveFileJpg("c:\x.jpg") = 0 Then 0 ' y lo convierte a jpg
        MsgBox "Imposible grabar JPG: " & Name, vbCritical
    End If

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

~~

Una mejor opcion q esa dll es el modul cJpeg q hace la captura de pantalla y la guarda en Jpg con la opcion de elegir tu mismo la calidad.
Ademas si usas el modulo no tienes q andar suiendo la dll...

1S4ludo

Sancho.Mazorka

hay una forma que no hay necesidad de mandar ningun archivo pero es un lio barbaro xq requerimos uso de la API getpixel y luego que dibuje pixel x pixel el receptor, es un lio que me hice xq otra alternativa hasta que encontre unos codigos los modifique y empeze a mandar archivos!
Todo un lio....


Sancho.Mazorka    :P
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



<?BRoWLi?>

Sip... es preferible mandar byte por byte que pixel por pixel... aunk en el primero aya que guardarlo en la PC
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV
Piratas.com.es