Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > UDP сокеты


Автор: ortex 6.7.2013, 20:41
Добрый вечер.
 Возникает ошибка когда хочу привязать сокет к точке с моим внешнем айпи: "Требуемый адрес для своего контекста неверен"
 Когда привязываю к локальному айпи то все прекрасно работает. Подскажите пожалуйста почему так.
 Ошибка в 3ей строчки.

 Код:

Код

Socket mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint ipep = _getEndPointListen();
mysocket.Bind(ipep);
 
private IPEndPoint _getEndPointListen()
{
    string ip = textBox2.Text;
    IPAddress IPAddr = IPAddress.Parse(ip);
    IPEndPoint hostIPEndPoint = new IPEndPoint(IPAddr, int.Parse(textBox3.Text));
    return hostIPEndPoint;
}

Автор: jonie 9.7.2013, 21:19
а что такое "мой внешний ip" ?) с чего бы вам иметь право на привязку к нему? 
Вы можете привязаться (если позволит файрвол и права) либо на 127.0.0.1 (IPv4) (или на любой другой localhost) либо на ip адрес (dns адрес, если DNS сервер сможет разрешить это в ip) виртуального устройства - сетевого адаптера.

Например: в сети вида:
я (192.168.0.2)---(192.168.0.1)роутер (83.15.220.1)--внешний мир 
я не смогу прибинбится на 83.15.220.1, т.к. он мне физически недоступен.

Автор: ortex 10.7.2013, 11:23
jonie, спасибо, я уже разобрался:) биндился на 0.0.0.0.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)