Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con WINSOCK (Visual Basic 6.0)

Estas en el tema de Ayuda con WINSOCK (Visual Basic 6.0) en el foro de Visual Basic clásico en Foros del Web. Hola veran?? Tengo una aplicacion CLIENTE / SERVIDOR. Pasa que yo lo que kiero es que cuando envio el "SERVER" al PC-2 me envie su ...
  #1 (permalink)  
Antiguo 26/08/2006, 07:57
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Ayuda con WINSOCK (Visual Basic 6.0)

Hola veran?? Tengo una aplicacion CLIENTE / SERVIDOR.
Pasa que yo lo que kiero es que cuando envio el "SERVER" al PC-2 me envie su ip cada vez que se conecte.

PARA QUE LO ENTIENDAN MEJOR OS PONGO EL CODIGO:

--------------------SERVIDOR-------------------------------------------


Public str_contenido_archivo As String, str_nombre_archivo As String, _
str_ruta_remota As String
Dim lng_tamaño_archivo As Long

Private Sub cmd_conectar_click()
'antes de conectarme el winsock debe estar cerrado
Me.ws_cliente.Close
'me conecto a la pc remota utilizando su ip(la que ponemos en el textbox), x el puerto 8888
Me.ws_cliente.Connect Me.txt_ip, "8888"
'habilito el frame que tiene consigo las opciones de envío
Me.Frame1.Enabled = True
End Sub

Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'la declaración de a continuación se pregunta el estado del winsock, si es = 7(conectado)
'habilita las opciones(todo lo ke está pegado al frame) de lo contrario las desabilita.
If Me.ws_cliente.State = 7 Then Me.Frame1.Enabled = True Else Me.Frame1.Enabled = False
'si está conectado o no; imprimimos las noticia en el label
If Me.ws_cliente.State = 7 Then Me.lbl_estado_winsock = "ESTADO.. CONECTADO A " & Me.txt_ip Else Me.lbl_estado_winsock = "ESTADO ... DESCONECTADO"
End Sub

Private Sub cmd_buscar_imagen_Click()
'cuando se abra la ventana Abrir archivo, podemos filtrar la extensión
'que se quiere mostrar, ahora ponemos *.*(cualquier archivo y extensión)
Me.cd_directorio.Filter = "todos los archivos |*.*"
'abrimos la ventana
Me.cd_directorio.ShowOpen

'abrimos el archivo seleccionado pero en código binario
Open Me.cd_directorio.FileName For Binary As #1
'almacenamos el contenido en una variable string
Me.str_contenido_archivo = Input(LOF(1), 1)
Close #1

'la propiedad 'FileTitle' me devuelve el nombre del archivo selccionadoç
'el cual almaceno en la variable '.str_nombre_archivo'
Me.str_nombre_archivo = Me.cd_directorio.FileTitle

lng_tamaño_archivo = Len(Me.str_contenido_archivo)
End Sub

Private Sub cmd_enviar_Click()
Me.str_ruta_remota = Me.txt_ruta + Me.str_nombre_archivo
'aqui mandamos los datos necesarios para poder enviar correctamente el archivo,
'anteponemos el nombre archivo para que el server sepa que hacer, acompañado de la ruta,tamaño
Me.ws_cliente.SendData "archivo|" & Me.str_ruta_remota & "|" & lng_tamaño_archivo
End Sub
Private Sub ws_cliente_DataArrival(ByVal bytesTotal As Long)
'cada vez que se reciba algo se almacena en una cadena(str_dato_recibido)

Dim str_dato_recibido As String
Me.ws_cliente.GetData str_dato_recibido

Select Case str_dato_recibido
Case Is = "msg_peticion_aceptada":
'si el server recibió nuestra petición de archivo y la acept´ó
'el envíamos el contenido del archivo leido en el momento de su apertura
Me.ws_cliente.SendData Me.str_contenido_archivo
Case Is = "msg_archivo_recibido":
'si el envío fue completo enviamos un mensaje de información
MsgBox ("Archivo envíado correctamente"), vbInformation
End Select
End Sub

-------------------------------------------------------------------------




-----------------CLIENTE-----------------------------------------------
Public str_contenido_archivo As String, str_nombre_archivo As String, _
str_ruta_remota As String
Dim lng_tamaño_archivo As Long

Private Sub cmd_conectar_click()
'antes de conectarme el winsock debe estar cerrado
Me.ws_cliente.Close
'me conecto a la pc remota utilizando su ip(la que ponemos en el textbox), x el puerto 8888
Me.ws_cliente.Connect Me.txt_ip, "8888"
'habilito el frame que tiene consigo las opciones de envío
Me.Frame1.Enabled = True
End Sub

Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'la declaración de a continuación se pregunta el estado del winsock, si es = 7(conectado)
'habilita las opciones(todo lo ke está pegado al frame) de lo contrario las desabilita.
If Me.ws_cliente.State = 7 Then Me.Frame1.Enabled = True Else Me.Frame1.Enabled = False
'si está conectado o no; imprimimos las noticia en el label
If Me.ws_cliente.State = 7 Then Me.lbl_estado_winsock = "ESTADO.. CONECTADO A " & Me.txt_ip Else Me.lbl_estado_winsock = "ESTADO ... DESCONECTADO"
End Sub

Private Sub cmd_buscar_imagen_Click()
'cuando se abra la ventana Abrir archivo, podemos filtrar la extensión
'que se quiere mostrar, ahora ponemos *.*(cualquier archivo y extensión)
Me.cd_directorio.Filter = "todos los archivos |*.*"
'abrimos la ventana
Me.cd_directorio.ShowOpen

'abrimos el archivo seleccionado pero en código binario
Open Me.cd_directorio.FileName For Binary As #1
'almacenamos el contenido en una variable string
Me.str_contenido_archivo = Input(LOF(1), 1)
Close #1

'la propiedad 'FileTitle' me devuelve el nombre del archivo selccionadoç
'el cual almaceno en la variable '.str_nombre_archivo'
Me.str_nombre_archivo = Me.cd_directorio.FileTitle

lng_tamaño_archivo = Len(Me.str_contenido_archivo)
End Sub

Private Sub cmd_enviar_Click()
Me.str_ruta_remota = Me.txt_ruta + Me.str_nombre_archivo
'aqui mandamos los datos necesarios para poder enviar correctamente el archivo,
'anteponemos el nombre archivo para que el server sepa que hacer, acompañado de la ruta,tamaño
Me.ws_cliente.SendData "archivo|" & Me.str_ruta_remota & "|" & lng_tamaño_archivo
End Sub
Private Sub ws_cliente_DataArrival(ByVal bytesTotal As Long)
'cada vez que se reciba algo se almacena en una cadena(str_dato_recibido)

Dim str_dato_recibido As String
Me.ws_cliente.GetData str_dato_recibido

Select Case str_dato_recibido
Case Is = "msg_peticion_aceptada":
'si el server recibió nuestra petición de archivo y la acept´ó
'el envíamos el contenido del archivo leido en el momento de su apertura
Me.ws_cliente.SendData Me.str_contenido_archivo
Case Is = "msg_archivo_recibido":
'si el envío fue completo enviamos un mensaje de información
MsgBox ("Archivo envíado correctamente"), vbInformation
End Select
End Sub
  #2 (permalink)  
Antiguo 26/08/2006, 08:49
Avatar de wansoft  
Fecha de Ingreso: mayo-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 81
Antigüedad: 18 años
Puntos: 1
Puedes utilizar las propiedades RemoteHostIP ( para obtener el IP de la pc remota, o sea, a la que te conectas), y LocalIP para obtener la IP local.
  #3 (permalink)  
Antiguo 26/08/2006, 11:47
 
Fecha de Ingreso: agosto-2006
Mensajes: 39
Antigüedad: 17 años, 8 meses
Puntos: 1
Digo lo mismo que dice "wansof" porque es lo que te ofrece el control Winsock, pero si la persona que tiene el cliente se conecta al servidor y esta dentro de una LAN (Local Area Network) se dará la IP de la misma
  #4 (permalink)  
Antiguo 28/08/2006, 07:59
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Como ago eso?????
  #5 (permalink)  
Antiguo 09/04/2007, 09:24
 
Fecha de Ingreso: abril-2007
Mensajes: 2
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con WINSOCK (Visual Basic 6.0)

Mira lo que tienes que hacer es que por medio del cliente enviarle un mensaje como "IP Remoto" y cuando el server lo resiva inmediatamente enviar al cliente el valor de Winsock1.LocalIP y el cliente lo recivira....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:59.