Buenas gente, estaba viendo de crear una aplicación usando el Winsock, queriendo crear un chat (Para comenzar entre dos maquinas, luego le ire agregando más cosas ^^)...
El programa que realicé, funciona perfectamente en una red LAN, pero al querer usar este programa a través de internet, no logró conseguir la conexión entre cliente-servidor.
Si quieren, les dejo el código fuente del mismo:
Cliente
Código Vb:
Ver originalPrivate Sub Command1_Click()
Winsock1.SendData Text2.Text
Text1.Text = Text1.Text & "Cliente>" & Text2.Text & vbCrLf
Text2.Text = ""
End Sub
Private Sub Command2_Click()
Winsock1.RemoteHost = Text3.Text
Winsock1.RemotePort = Text4.Text 'Definicion de IP y puerto
Winsock1.Close
Winsock1.Connect 'Conexion al servidor
'Form2
'Form2.Visible = True
End Sub
Private Sub Winsock1_Connect()
Text1.Text = Text1.Text & "Conexion al servidor realizada." & vbCrLf
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Dato As String
Winsock1.GetData Dato
Text1.Text = Text1.Text & "Servidor>" & Dato & vbCrLf
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
Text1.Text = Text1.Text & "Conexion cancelada por el servidor." & vbCrLf
End Sub
Servidor
Código Vb:
Ver originalPrivate Sub Command1_Click()
Winsock1.SendData Text2.Text
Text1.Text = Text1.Text & "Servidor >" & Text2.Text & vbCrLf
Text2.Text = ""
End Sub
Private Sub Command2_Click()
Winsock1.Close
Winsock1.LocalPort = Text3.Text 'Definicion de puerto
Winsock1.Listen 'Conexion al servidor
Text1.Text = Text1.Text & "Servidor activo." & vbCrLf
End Sub
Private Sub Command3_Click()
Winsock1.Close
Text1.Text = Text1.Text & "Conexion cancelada." & vbCrLf
End Sub
Private Sub Winsock1_Connect()
Text1.Text = Text1.Text & "Conexion al servidor realizada." & vbCrLf
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Dato As String
Winsock1.GetData Dato
Text1.Text = Text1.Text & "Cliente>" & Dato & vbCrLf
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Text1.Text = Text1.Text & "Pedido de conexion: " & requestID & vbCrLf
Winsock1.Close
Winsock1.Accept requestID
Text1.Text = Text1.Text & "Conexion realizada." & vbCrLf
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
Text1.Text = Text1.Text & "Conexion cancelada por el Cliente." & vbCrLf
End Sub
Creo que el problema viene del lado de los puertos en el servidor. Mi pc (Que hace de servidor), esta conectada a través de un router a internet. Ya abrí el puerto que voy a usar para mi programa, y se lo asigne a mi pc. Tambiñen tengo deshabilitado el firewall (Tanto del equipo como del router), pero todavía sigo sin poder realizar la conexión entre el Servidor (Mi computadora) y el cliente (Computadora de una amigo) vía internet...
Si alguien puede darme una mano, les estaría muy agradecido. Desde ya muchas gracias, cualquier consulta no duden en preguntar.
Saludos!