Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/05/2011, 23:14
coqui90
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 12 años, 11 meses
Puntos: 0
[Ayuda:Vb6] Winsock

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 original
  1. Private Sub Command1_Click()
  2. Winsock1.SendData Text2.Text
  3. Text1.Text = Text1.Text & "Cliente>" & Text2.Text & vbCrLf
  4. Text2.Text = ""
  5. End Sub
  6.  
  7. Private Sub Command2_Click()
  8. Winsock1.RemoteHost = Text3.Text
  9. Winsock1.RemotePort = Text4.Text 'Definicion de IP y puerto
  10.  
  11. Winsock1.Close
  12. Winsock1.Connect 'Conexion al servidor
  13. 'Form2
  14. 'Form2.Visible = True
  15. End Sub
  16.  
  17. Private Sub Winsock1_Connect()
  18. Text1.Text = Text1.Text & "Conexion al servidor realizada." & vbCrLf
  19. End Sub
  20.  
  21. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  22. Dim Dato As String
  23. Winsock1.GetData Dato
  24. Text1.Text = Text1.Text & "Servidor>" & Dato & vbCrLf
  25. End Sub
  26.  
  27.  
  28. Private Sub Winsock1_Close()
  29. Winsock1.Close
  30. Text1.Text = Text1.Text & "Conexion cancelada por el servidor." & vbCrLf
  31. End Sub

Servidor
Código Vb:
Ver original
  1. Private Sub Command1_Click()
  2. Winsock1.SendData Text2.Text
  3. Text1.Text = Text1.Text & "Servidor >" & Text2.Text & vbCrLf
  4. Text2.Text = ""
  5. End Sub
  6.  
  7.  
  8. Private Sub Command2_Click()
  9. Winsock1.Close
  10. Winsock1.LocalPort = Text3.Text 'Definicion de puerto
  11. Winsock1.Listen 'Conexion al servidor
  12. Text1.Text = Text1.Text & "Servidor activo." & vbCrLf
  13. End Sub
  14.  
  15. Private Sub Command3_Click()
  16. Winsock1.Close
  17. Text1.Text = Text1.Text & "Conexion cancelada." & vbCrLf
  18. End Sub
  19.  
  20. Private Sub Winsock1_Connect()
  21. Text1.Text = Text1.Text & "Conexion al servidor realizada." & vbCrLf
  22. End Sub
  23.  
  24. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  25. Dim Dato As String
  26. Winsock1.GetData Dato
  27. Text1.Text = Text1.Text & "Cliente>" & Dato & vbCrLf
  28. End Sub
  29.  
  30.  
  31. Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
  32. Text1.Text = Text1.Text & "Pedido de conexion: " & requestID & vbCrLf
  33. Winsock1.Close
  34. Winsock1.Accept requestID
  35. Text1.Text = Text1.Text & "Conexion realizada." & vbCrLf
  36. End Sub
  37.  
  38. Private Sub Winsock1_Close()
  39. Winsock1.Close
  40. Text1.Text = Text1.Text & "Conexion cancelada por el Cliente." & vbCrLf
  41. 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!