2009-05-04 3 views
2

VS 2008C# Разъем: подключение к серверу через прокси-сервер

Я использую приведенный ниже код для обнаружения, если клиент может подключиться к нашему серверу SIP. Это работало нормально. Тем не менее, клиент изменил эту сеть, и теперь мое приложение должно подключиться к серверу SIP из-за прокси-сервера.

Я получаю ошибку является:

«Попытка подключения не удалась, поскольку подключенная сторона не ответила после определенного периода времени, или установить соединение не удалось, так как подключенный хозяин не смог ответить xxx.xxx .xx.xx: xx "

Этот код работал нормально, пока мне не нужно подключиться из-за прокси-сервера.

Я не мог видеть какие-либо объекты там, где я могу добавить прокси-адрес в сокет.

Я что-то упустил?

Большое спасибо за любые предложения,

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; 
} 

ответ

3

См. Мой ответ here, может быть, это будет полезно. Общая идея состоит в том, чтобы сначала установить соединение с прокси-сервером, а затем использовать команду HTTP CONNECT, чтобы открыть другое TCP-соединение с данным хостом и портом.

1

Это очень похоже на эту question. Я не думаю, что можно создать соединение сокета через прокси-сервер. Вам понадобится какой-то протокол и многое другое, обычно администраторы настраивают прокси-серверы для отказа от соединений с портами, отличными от стандартных HTTP, HTTPS.

Одним из решений было бы использование туннелирования через HTTP.

1

Вся идея прокси-сервера заключается в изменении топологии сети без изменения приложений. Таким образом, нет необходимости изменять приложение, но требуется изменение конфигурации прокси-сервера.

Чтобы проверить конфигурацию прокси-сервера независимо от приложения, вы можете использовать Telnet Host Port и посмотреть, есть ли у вас одно и то же сообщение о тайм-ауте/ошибке или если вы отключились после ввода нескольких символов.

Смежные вопросы