Zócalo C #: conéctese al servidor a través del servidor proxy

votos
2

VS 2008

Estoy usando el siguiente código para detectar si el cliente puede conectarse a nuestro servidor SIP. Esto estaba funcionando bien. Sin embargo, el cliente ha cambiado su red y ahora mi aplicación debe conectarse al servidor SIP desde detrás de un servidor proxy.

El error que recibo es el:

Falló un intento de conexión porque la parte conectada no respondió correctamente después de un período de tiempo o la conexión establecida falló porque el host conectado no respondió xxx.xxx.xx.xx: xx

Este código funcionaba bien, hasta que tuve que conectarme desde detrás de un servidor proxy.

No pude ver ninguna propiedad. Puedo agregar la dirección proxy al socket.

¿Me estoy perdiendo de algo?

Muchas gracias por las sugerencias,

public bool IsSIPServerAvailable()
{
    bool isAvailable = true;
    Socket sock = new Socket(AddressFamily.InterNetwork,
                             SocketType.Stream,
                             ProtocolType.Tcp);

    try
    {
        sock.Connect(xxx.xxx.xx.xx, xx);
    }
    catch (SocketException ex)
    {
        Console.WriteLine(ex.Message);
        isAvailable = false;
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
        isAvailable = false;
    }
    finally
    {
        if (sock.Connected)
        {
            sock.Close();
        }
    }

    return isAvailable;
}
Publicado el 04/05/2009 a las 06:54
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
1

Esto es muy similar a esta pregunta . No creo que sea posible crear una conexión de socket a través de un servidor proxy. Necesitarías algún tipo de protocolo y más, generalmente los administradores configuran servidores proxy para rechazar conexiones de puertos que no sean HTTP estándar, HTTPS.

Una solución sería usar tunneling sobre HTTP.

Respondida el 04/05/2009 a las 07:10
fuente por usuario

votos
1

La idea de un proxy es cambiar la topología de red sin cambiar las aplicaciones. Por lo tanto, no es necesario cambiar la aplicación, pero se requiere un cambio en la configuración / configuración del proxy.

Para verificar la configuración del proxy independientemente de su aplicación, puede usar Telnet Host Porty ver si obtiene el mismo mensaje de tiempo de espera / error o si se desconecta después de ingresar algunos caracteres.

Respondida el 04/05/2009 a las 07:11
fuente por usuario

votos
3

Véase mi respuesta aquí , tal vez va a ser útil. La idea general es establecer la primera conexión a un proxy, y luego utilizar HTTP CONNECT comando para abrir otra conexión TCP a un host y el puerto dado.

Respondida el 27/06/2010 a las 13:21
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more