| 
	
		|  Autor | Tema: Como mandar un picturebox con winsock  (Leído 5,667 veces) |  
	| 
			| 
					
						| Xephiro | 
 
       Buenas XD aqui yo nuevamente con otra pregunta XD... Como se puede mandar un picturebox por medio de winsock en un sistema cliente - servidor a otro picturebox ? 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| DrakoX 
								
								 Desconectado 
								Mensajes: 191
								
								   | 
 
Sinceramente, no sabria como hacerlo,
 
 pero si tienes acceso a la imagen,
 podrias mandarlo como un archivo normal
 
 salu2
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Snort 
								 
								
								 Desconectado 
								Mensajes: 338
								
								   | 
 
Tendrias qe guardar la imagen del picturebox en un archivo, y luego mandar el archivo, y al llegar, pon qe si la extension es jpg, bmp, o la qe sea, de imagen, la abra desde el otro picturebox |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| CeLaYa 
								 
								
								 Desconectado 
								Mensajes: 543
								
								   | 
 
tomando la idea de Snort creo que se podría hacer asi: 'Para enviar la imagen lo hago desde un command Button y la guardo en un archivo llamado "x.jpg"
 Private Sub Command1_Click()
 Dim x As String, f As Long
 SavePicture Picture1.Picture, "c:\x.jpg"
 
 f = FreeFile
 Open "C:\x.jpg" For Binary Access Read As #f
 x = Space(LOF(f))
 Get #f, , x
 Close #f
 
 winsock1.SendData x
 
 End Sub
 
 
 'Para recibir lo hago con strdata y lo guardo en un archivo "x2.jpg" y luego cargo la imagen en el picture
 Private Sub winsock2_DataArrival(ByVal bytesTotal As Long)
 Dim strData As String, f As Long
 
 winsock2.GetData strData
 txtOutput.Text = txtOutput.Text & strData
 
 f = FreeFile
 
 Open "C:\x2.jpg" For Binary Access Write As #f
 Put #f, , txtOutput.Text
 Close #f
 On Local Error Resume Next
 Picture1.Picture = LoadPicture("c:\x2.jpg")
 On Local Error GoTo 0
 
 End Sub
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 "La soledad es el elemento de los grandes talentos".Cristina de Suecia (1626-1689) Reina de Suecia.
 |  |  |  |  |  | 
			| 
					
						| <?BRoWLi?> 
								
								 Desconectado 
								Mensajes: 109
								
								 
								Kien mira por ti?
								
								
								
								
								
								     | 
 
Deberías enviar por lotes... por ejemplo de 1KB... Dim variable as tipo * 1024... entonces la diferencia se notaría menos (mientras menores sean los lotes mejor...) y para saber cuando acaba... envía primero el tamaño...    nuevaVariable = FileLen "pathdelarchivo" u.. open...     nuevaVariable =  input(Lof(canal),  canal), si lo has avierto... y a continuación... 
 ...Close    ws.senddata nuevaVariable x cierto nuevaVariable es Long ... y luego lo recibes en el dataarrival... if left(buffer, n... y lo igualas a cualquier ProgressBar.. pb.max = buffer... y lo que te vaya llegando lo vas añadiendo como long a una nueva variable... o simplemente bytesrecibed en pb.value... suerte... |  
						| 
								|  |  
								| « Última modificación: 27 Diciembre 2006, 21:59 pm por BRoWLi » |  En línea | 
 
 Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleVPiratas.com.es |  |  |  | 
			| 
					
						| CeLaYa 
								 
								
								 Desconectado 
								Mensajes: 543
								
								   | 
 
BRoWLi gracias por tu comentario, modifique un poco el código que puse y quedo así, aver que opinan, porque es la 1a vez que le meto mano al winsock: Para enviar 'Aqui le envio el tamaño de la imagen
 Private Sub Command1_Click()
 Dim x As String, f As Long
 
 SavePicture Picture1.Picture, "c:\x.jpg"
 
 Tamaño = FileLen("c:\x.jpg")
 
 tcpServer.SendData Str(Tamaño)
 
 End Sub
 
 'Espero a que el cliente me conteste que recibio el tamaño de la imagen y ahora si le envio el archivo
 Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
 Dim strData As String, f As Long, x As String
 tcpServer.GetData strData
 txtOutput.Text = strData
 
 If strData = "RECIBIDO" Then
 f = FreeFile
 Open "C:\x.jpg" For Binary Access Read As #f
 x = Space(LOF(f))
 Get #f, , x
 Close #f
 tcpServer.SendData x
 
 Kill "C:\x.jpg"
 End If
 End Sub
 
Para recibir Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)Dim strData As String, f As Long
 
 tcpClient.GetData strData
 'si el max de progress bar es 1 le pongo el tamaño del archivo
 If ProgressBar1.Max = 1 Then
 ProgressBar1.Max = Val(strData)
 ProgressBar1.Value = 0
 tcpClient.SendData "RECIBIDO"
 t = 0
 Exit Sub
 End If
 'aqui voy recibiendo e incrementando el Progressbar
 txtOutput.Text = txtOutput.Text & strData
 ProgressBar1.Value = bytesTotal
 t = t + bytesTotal
 
 'Cuando ya lo tengo todo creo un archivo y lo cargo al picture
 If ProgressBar1.Max = t Then
 
 f = FreeFile
 Open "C:\x2.jpg" For Binary Access Write As #f
 Put #f, , txtOutput.Text
 Close #f
 Picture1.Picture = LoadPicture("c:\x2.jpg")
 ProgressBar1.Max = 1
 txtOutput.Text = ""
 Kill "C:\x2.jpg"
 End If
 
 End Sub
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 "La soledad es el elemento de los grandes talentos".Cristina de Suecia (1626-1689) Reina de Suecia.
 |  |  |  | 
			| 
					
						| <?BRoWLi?> 
								
								 Desconectado 
								Mensajes: 109
								
								 
								Kien mira por ti?
								
								
								
								
								
								     | 
 
Muy buen code!
 Aunque, no he vsto x ninguna parte lo del flujo de datos, ten encuenta que s el archivo es mayor al real (el que se te crea), el prograssbar no será exacto... aunque está muy bien el code... Un saludo!
 |  
						| 
								|  |  
								|  |  En línea | 
 
 Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleVPiratas.com.es |  |  |  | 
			| 
					
						| DrakoX 
								
								 Desconectado 
								Mensajes: 191
								
								   | 
 
lindo code,lo que seria interesante,
 seria ver si existe aguna relación
 en el incremento del tamaño,
 probandolo con diferentes imagenes,
 y de esa forma lograr que el progresbar sea mas preciso
 
 
 salu2
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| CeLaYa 
								 
								
								 Desconectado 
								Mensajes: 543
								
								   | 
 
Gracias, referente a lo del tamaño de la imagen creo que no me di a entender, lo que pasa esque la imagen que cargo al picture es de 3.5Kb y cuando le pongo SavePicture me crea un archivo de 23kb, creo que es porque lo manda como bmp, y lo tendría que pasar a jpg, pero bueno de eso ya se ha hablado mucho aqui, igual y me pongo a búscarle... |  
						| 
								|  |  
								|  |  En línea | 
 
 "La soledad es el elemento de los grandes talentos".Cristina de Suecia (1626-1689) Reina de Suecia.
 |  |  |  |  |  
 
	
 
   |