Frage

VS 2008

Ich verwende den Code zu erkennen, ob der Kunde zu unserem SIP-Server verbinden kann. Dies funktioniert gut. Allerdings hat der Kunde dort Netzwerk geändert und jetzt meine Anwendung hat an den SIP-Server von hinter einem Proxy-Server verbinden.

Der Fehler ich erhalte, ist die:

  

„Ein Verbindungsversuch ist fehlgeschlagen, da die verbundene Partei nicht richtig nach einer Zeitspanne reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da die verbundene Host ausgefallen xxx.xxx.xx.xx reagieren: xx“

Dieser Code arbeitet ok, bis ich hinter einem Proxy-Server zu verbinden habe.

Ich konnte keine Eigenschaften siehe da kann ich die Proxy-Adresse an die Buchse hinzuzufügen.

Bin ich etwas fehlt?

Vielen Dank für Ihre Anregungen,

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;
}
War es hilfreich?

Lösung

Siehe meine Antwort hier , vielleicht wird es hilfreich sein. Die allgemeine Idee ist es, zunächst der Anschluss an einen Proxy einzurichten, und dann HTTP-Befehl CONNECT eine andere TCP-Verbindung zu einem bestimmten Host und Port zu öffnen.

Andere Tipps

Dies ist sehr ähnlich wie diese Frage . Ich glaube nicht, es ist möglich, eine Socket-Verbindung über einen Proxy-Server zu erstellen. Sie würden eine Art von Protokoll benötigen und mehr über Administratoren in der Regel Proxy-Server einrichten, um Verbindungen von anderen Ports als Standard verweigern HTTP, HTTPS.

Eine Lösung wäre, Tunneling über HTTP zu verwenden.

Die ganze Idee eines Proxy ist die Netzwerktopologie zu ändern, ohne die Anwendungen zu ändern. Somit gibt es keine Notwendigkeit, die App zu ändern, aber eine Änderung in der Proxy-Konfiguration / Einrichtung erforderlich.

, um die Proxy-Konfiguration unabhängig von Ihrer Anwendung zu überprüfen, können Sie Telnet Host Port und sehen, wenn Sie die gleiche Timeout / Fehlermeldung erhalten, oder wenn Sie die Verbindung unterbrochen wird, nachdem ein paar Zeichen eingeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top