Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - jesuss2012

#1
Muchas gracias a todos por vuestras respuestas.
Finalmente he encontrado el problema y era efectivamente los cortafuegos del maldito antivirus.
#2
Está claro que lo del Cliente / Servidor el concepto está al revés de como lo pensaba, pero en definitiva uno escucha y el otro se conecta. Yo tengo los puertos redireccionados en el que escucha, pero por si acaso también están redireccionados en el que se conecta, aunque entiendo que no es necesario.

Por si sirve de pista, recuerdo que he realizado la misma operación con el Hyperterminal y me ha funcionado correctamente, uno esperando llamada y el otro llamando, y que ha nivel de mi propia red las dos aplicaciones realizan su cometido bien.

He modificado el software según Zorrohack pero sigue persistiendo el mismo error.
"Error 10061:Se ha forzado el rechado de la conexión"

#3
Gracias por responder,

La aplicación es más larga pero la he recortado a lo más básico, extraido de un ejemplo que funciona correctamente, pero solo en red.

En el programa CLiente Text3 contiene la dirección IP del servidor y Text4 el puerto.
En el programa Servidor Text6 contiene el puerto.

Código en el programa Cliente:

Private Sub Conectar_Click()
Winsock1.RemoteHost = Text3.Text
Winsock1.RemotePort = Text4.Text
Winsock1.Close
Winsock1.Connect
End Sub

Private Sub Winsock1_Close()
Winsock1.Close
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "Conexion cerrada por el servidor." & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Winsock1_Connect()
Text1.Text = Text1.Text & _ "Conexion establecida." & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Buffer As String
Winsock1.GetData Buffer
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
Text1.Text = Text1.Text & "Servidor >" & Buffer 'mostramos los datos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Winsock1.Close
MsgBox "Error numero " & Number & ": " & Description, vbCritical
End Sub

Código en el programa Servidor:

Private Sub Escuchar_Click()
Winsock2.Close
Winsock2.LocalPort = Text6.Text
Winsock2.Listen
Text4.SelStart = Len(Text4.Text)
Text4.Text = Text4.Text & "Escuchando conexiones." & vbCrLf
Text4.SelStart = Len(Text4.Text)
End Sub

Private Sub Winsock1_Close()
Winsock1.Close
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "Conexion cerrada por el Cliente." & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "*** Peticion numero " & requestID & vbCrLf
Text1.SelStart = Len(Text1.Text)
Winsock1.Close
Winsock1.Accept requestID
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "Conexion aceptada, listo para interactuar." & vbCrLf
Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Buffer As String 'variable para guardar los datos
Winsock1.GetData Buffer
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
Text1.Text = Text1.Text & "Cliente >" & Buffer 'mostramos los datos
Text1.SelStart = Len(Text1.Text) 'coloca el cursor al final del contenido
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Winsock1.Close
MsgBox "Error numero " & Number & ": " & Description, vbCritical
End Sub
#4
Programación Visual Basic / Problemas Winsock
26 Marzo 2012, 13:29 PM
Estoy desesperado y no se por donde tirar,

He creado una aplicación cliente/servidor con el control Winsock e internamente en mi red funciona todo correctamente.

El problema, es que he de utilizarlo para conectar un PC externo a mi red y el mío, y no consigo que funcione. No llega a conectarse.

He redirigido el puerto con el que trabajo (que es el 1008) con el NAT en el router (también lo he probado con otros).

Lo curioso es que he probado de que el PC externo se conecte mediante el Hyperterminal al Hyperterminal de mi PC mediante TCP y a través del puerto 1008 y se conectan correctamente. Así que entiendo que el problema no es de redireccionamiento.

Por si acaso he desactivado el Firewall de Windows y el de mi antivirus y nada de nada.

No se si alguien se ha encontrado en la misma situación o puede orientarme por donde mirar.