Conectar 2 programas por medio de internet

Iniciado por Krnl64, 18 Abril 2006, 17:43 PM

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

NYlOn

Cambia las lineas:
If Ws.State <> 7 Then
por
If Ws.State <> 7 and Ws.State <> 6 Then

Si tenes el timer con un intervalo bajo y no tenes en cuenta el estado 6 ('Conectando...') el socket nunca terminaria de conectar ya que le mandas la accion de nuevo. No se si sera este el problema, pero podes probar.

Espero que te sea de ayuda, saludos.-

Krnl64

#21


GRACIAS A TODOS, MUCHAS GRACIAS



Aparte de algun fallo en el code, no me conectaban los programas porque intentaban conectarse a la misma IP.

Ya lo he solucionado.

A continuacion, les pongo el code que ya funciona.

Es por si a alguien le hace falta.



Antes de nada sigan estos pasos:


Abrir el puerto que se vaya a utilizar en el router que se vaya a correr el servidor. (opcional)

Crearse 1 no-ip

Instalar y correr el DUC.

Activar tu dominio en el DUC (Carita sonriente)

Correr el servidor en tu pc

Correr el Cliente en el pc remoto

Ya esta !!


Ambos programas pueden mejorarse, por ejemplo que soporten varios protocolos / varias conexiones

Y porsupuesto la funcionalidad de ambos programas

Eso lo dejo para ustedes

1 Observacion, en el cliente sera necesario emular el control Winsock (con api) porque el no hacerlo significa arriesgarse a que si el pc remoto no tiene el control, esto no funcione.

Ahora los codes:


''''
''''  Cliente
''''

Private Sub Form_Load()
Ws.RemotePort = 1066
Ws.RemoteHost = "tudominio.no-ip.org" '' aki tu dom no-ip
Ws.Connect
End Sub

Private Sub Timer1_Timer()
If Ws.State <> 7 And Ws.State <> 6 Then
Ws.Close
Ws.Connect
Else
Label1.Caption = "Has conectado con el Host Remoto"
End If
End Sub




''''
'''' Servidor
'''
Private Sub Form_Load()
Ws.Close
Ws.LocalPort = 1066
Ws.Listen
End Sub

Private Sub Timer1_Timer()
If Ws.State <> 7 And Ws.State <> 6 Then
Label1.Caption = "Desconectado"
Ws.Close
Ws.Listen
Else
Label1.Caption = "Conectado"
End If
End Sub

Private Sub Ws_ConnectionRequest(ByVal requestID As Long)
   Ws.Close
   Ws.Accept requestID
End Sub