Hola veran?? Tengo una aplicacion CLIENTE / SERVIDOR. Pasa que yo lo que quiero 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 que 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 que 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
|