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 - ~~

#861
El mio aparte si te fucionaba no? por q ya me estaba preocupando xDD

Kita el timer. Haz q nada mas recibir una imagen haga peticion de la siguiente.
Tendrias q ponerlo en el cliente justo despues de el msgbox q dice "llegaron perfectamente".

1S4ludo
#862
Seguramente q me haya comido algun trozo de code por q lo e hecho aki directamente, sin el VB delante. Vamos a ver, prueva con esto:

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

Private Sub ws_Connect()
Dim foto As New cJpeg
Dim ar As String
Dim filesize As String
foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2
foto.Quality = 50   ' aqui ajustas la calidad dsd 1 a 100 hasi bajas calidad bajas peso
foto.SampleScreen
foto.SaveFile ("C:\capture.jpg")

ws.SendData "Tam:" & FileLen("C:\capture.jpg")
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:\capture.jpg" For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1

ws.SendData Send
End If

End Sub




Cliete:
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
If Len(DataFile) = LenFile Then
Open "C:\capture2.jpg" For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Enviado Correctamente"
Envio = False

'Una vez lo tenemos lo mostramos
Form4.Picture1.Picture = LoadPicture("C:\capture2.jpg")
End If
End If

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


Ya esta. Compilas eso (solo añadiendo un form4 con un picture box unos winsocks y los modulos cjeg) y deberia funcionarte bien.

Lo de usar left o | da igual. Es mejor usar el split la verdad asi q en tu caso el server deberia enviar
ws.SendData "Tam:|" & FileLen("C:\capture.jpg")
en vez de
ws.SendData "Tam:" & FileLen("C:\capture.jpg")

Y el cliente comprovar si es Tam: solamente, seria:
case"Tam:":
en vez de
If Left(data, 4) = "Tam:" Then

Pero vamos eso ya es q  tu lo adaptes. Si sigue sin funcionarte dimelo y te lo subo bien, por q esto  lo estoy haciendo sin provar ;)

1S4ludo
#863
Write solo lleva una , pero de todas maneras no se por q  pasa eso... azlo asi:

Open "c:\test.bat" For Binary As #1
Put #1, , "@echo off" & vbCrLf
Put #1, , "dsfFSD"
Close #1

#864
Si, es mucho mejor

Puedes poner cualkier caracter q actue como separador y luego usar un split para partirlo ;)
#865
A ver cambia esto:
CitarOpen "c:\capture.jpg" For Binary As #1
ar = Input(LOF(1), 1)
filesize = Len(ar)
Close #1

Por space(lof(1))  a ver si asi te funciona ademas en ningun momento haces un get para obtener los datos... y en la linea:

filesize = Len(ar)

pon FileLen("c:\capture.jpg") en vez de len ;)

Otra cosa, se te guarda bien la imagen en C:?? por q mira:
foto.SaveFile ("c:\" & "\capture12" & ".jpg")

No ves q hay dos \. Lo intentas guardar en C:\\capture12.jpg..

Aparte sigues aciendolo mal. Fijate:

SERVER:
WS.SendData "paco|" & filesize & ar


CLIENTE:
Case "paco"

No ves q paco solo se envia una vez mientras q los otros datos siguen llegando? asi no see acumulan, tienes q poner un interruptor como yo te e dicho (FIJATE EN EL CODE Q TE E PASADO!!!!), seria asi:



SERVER:
Private Sub command1_click() ' Te lo pongo en un boton y luego ya lo cambias
Dim foto As New cJpeg
Dim ar As String
Dim filesize As String
foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2
foto.Quality = 50   ' aqui ajustas la calidad dsd 1 a 100 hasi bajas calidad bajas peso
foto.SampleScreen
foto.SaveFile ("c:\" & "capture" & ".jpg")

ws.SendData "Tam:" & FileLen("C:\capture.jpg") 'Enviamos el tamaño de la foto q acabamos de sacar

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



Asi te tiene q funcionar por mis coj***
1S4ludo
#866
Pues deberia funcionarte.. Has compilado el mio tal y como te lo e puesto?? (cambiando lo unic olas rutas xD)

A ver el funcionamiento es el siguiente:

El cliente hace la petiion de un archivo.
El server enbia al cliente el tamaño del archivo.
El cliente pone en marcha un interruptor. A partir de ese momento y hasta q el tamaño de datos recibidos sea igual al tamaño q nos enviaron antes alamcenamos.
Una vez tengamos todo lo guardamos en un archivo

Ese es el funcionamiento. Es simple, deberia funcionarte..
#867
Mira aki tienes otro ejemplo, q a mi me parece mas simple xD sera por q siempre lo uso  ;D ;D
#868
Gracias Mad ;) muy buen aporte, y felicidades por la nueva version  :P
#869
Pues claro:

Private Sub Form_Resize()
If Me.WindowState = 1 Then
    'Aqui llamas a la funcion desead
End If
End Sub


Donde esta el comentario llamas al picture1_click, me parece q es...

1S4ludo
#870
Pues se llama tray icon, por si neesitas mas info sobre el ;)