Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/141: Рейтинг темы: голосов - 141, средняя оценка - 4.87
Заблокирован

SocketException - "Требуемый адрес для своего контекста неверен"

02.03.2016, 09:35. Показов 31332. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
на бинде вылетает ошибка такая вот странная
C#
1
2
3
4
var ip = GetNetworkIPAddress();
var ep = new IPEndPoint(ip, 11000);
var listener = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(ep);
где
C#
1
2
3
4
5
6
7
8
// тут все верно, проверено отладчиком
public static IPAddress GetNetworkIPAddress()
{
    var htmlPage = new WebClient().DownloadString("https://2ip.ru");
    var pattern = @"<big id=""d_clip_button"">(\d.+)</big>";
    var match = Regex.Match(htmlPage, pattern);
    return IPAddress.Parse(match.Groups[1].Value);
}
Добавлено через 18 минут
помогите!

Добавлено через 11 часов 56 минут
актуально!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2016, 09:35
Ответы с готовыми решениями:

Требуемый адрес для своего контекста неверен
Когда ввожу свой сейчашний айпи с сайта 2ip.ru и тому подобных, пишется в консоль, что &quot;Требуемый адрес для своего контекста...

TcpListener, Требуемый адрес для своего контекста неверен
Доброго времени суток! У меня возникла такая проблема: пытаюсь выполнить подключение через TcpListener, а выдается такая ошибка...

Сокеты UDP - Требуемый адрес для своего контекста неверен
Добрый вечер. Возникает ошибка когда хочу привязать сокет к точке с моим внешнем айпи: &quot;Требуемый адрес для своего контекста...

24
Эксперт .NET
 Аватар для Usaga
14297 / 9382 / 1353
Регистрация: 21.01.2016
Сообщений: 35,371
02.03.2016, 12:38
Ну это же очевидно. Поставьте Brakepoint на строке var ep = new IPEndPoint(ip, 11000); и посмотрите, что в переменную ip попало. Есть подозрение, что там что попало.
1
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
02.03.2016, 12:50
а почему бы не использовать метод System.Net.Dns.GetHostAddresses(string hostName)?
0
Заблокирован
02.03.2016, 15:03  [ТС]
Usaga,
Цитата Сообщение от Penelent Посмотреть сообщение
тут все верно, проверено отладчиком
nedel, внешний ip адрес невозможно получить со своего компьютера, только с другого сервера в интернете
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
02.03.2016, 15:35
не сразу понял, что вы ищете свой ip адрес
если я правильно понял, то вы пробуете окрыть порт у себя, тогда
C#
1
2
3
IPEndPoint ep = new IPEndPoint(IPAddress.Any, 11000);
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(ep);
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
02.03.2016, 15:54
Penelent, а как ты собираешься слушать сокет с IP, к которому ты доступа не имеешь?
1
Заблокирован
02.03.2016, 16:11  [ТС]
Цитата Сообщение от nedel Посмотреть сообщение
IPAddress.Any
что это за бредятина? там нули какие то, это не IP это хз че...
Цитата Сообщение от Kastaneda Посмотреть сообщение
Penelent, а как ты собираешься слушать сокет с IP, к которому ты доступа не имеешь?
в каком смысле не имею? это мой ip, как я могу не иметь к нему доступа
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
02.03.2016, 16:14
Цитата Сообщение от Penelent Посмотреть сообщение
в каком смысле не имею? это мой ip, как я могу не иметь к нему доступа
если это IP именно твоей машины, то зачем лезть куда-то в интернет, чтоб его узнать? Если это IP твоего шлюза, через который ты в интернете сидишь, то как ты на него залезешь?

Добавлено через 50 секунд

Не по теме:

Цитата Сообщение от Penelent Посмотреть сообщение
там нули какие то, это не IP это хз че...
Ыыыы :D

0
Заблокирован
02.03.2016, 16:17  [ТС]
Цитата Сообщение от Kastaneda Посмотреть сообщение
если это IP именно твоей машины, то зачем лезть куда-то в интернет, чтоб его узнать? Если это IP твоего шлюза, через который ты в интернете сидишь, то как ты на него залезешь?
через другой сайт типа 2ip.ru неужели не понятно?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
02.03.2016, 16:18
Цитата Сообщение от Penelent Посмотреть сообщение
через другой сайт типа 2ip.ru неужели не понятно?
а это ответ на какой вопрос?
0
Заблокирован
02.03.2016, 16:23  [ТС]
3 символа
Цитата Сообщение от Kastaneda Посмотреть сообщение
а это ответ на какой вопрос?
Цитата Сообщение от Kastaneda Посмотреть сообщение
Если это IP твоего шлюза, через который ты в интернете сидишь, то как ты на него залезешь?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
02.03.2016, 16:24
Кстати тебе текст ошибки
SocketException - "Требуемый адрес для своего контекста неверен"
ни о чем не говорит?

Добавлено через 51 секунду
Penelent, то есть по-твоему ты через левый сайт сможешь залезть на сервер своего провайдера и открыть там сокет на прослушивание?
0
Заблокирован
02.03.2016, 16:35  [ТС]
Цитата Сообщение от Kastaneda Посмотреть сообщение
ни о чем не говорит?
то то и оно что не говорит
Цитата Сообщение от Kastaneda Посмотреть сообщение
Penelent, то есть по-твоему ты через левый сайт сможешь залезть на сервер своего провайдера и открыть там сокет на прослушивание?
да при чем тут на сервер провайдера? я просто узнаю так свой внешний ip, больше мне от этого левого сайта ничего не надо, сервер будет ни где то черте где, а на моем же компе, просто чтобы к нему можно было подключиться из интернета, а не только по локальной сети - надо узнать его внешний ip, забиндиться на него и к нему же коннектить клиентов
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
02.03.2016, 16:44
Цитата Сообщение от Penelent Посмотреть сообщение
что это за бредятина? там нули какие то, это не IP это хз че...
msdn:
Метод Socket.Bind использует поле Any для указания того, что экземпляр класса Socket должен контролировать действия клиентов на всех сетевых интерфейсах.

Поле Any эквивалентно 0.0.0.0 в формате четырех чисел, разделенных точками.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
02.03.2016, 16:45
Лучший ответ Сообщение было отмечено Penelent как решение

Решение

Penelent, для того, чтобы
Цитата Сообщение от Penelent Посмотреть сообщение
к нему можно было подключиться из интернета, а не только по локальной сети
тебе надо купить у провайдера белый IP (который будет виден из интернета, а не только из твоей локальной сети). Это не дорогая услуга, у моего провайдера около 50р./мес. стоит.
Так, как ты пытаешься это сделать, это не возможно.
1
Заблокирован
02.03.2016, 16:55  [ТС]
Kastaneda, хмм а мне говорили что надо просто узнать внешний ip... с чего вы взяли что именно так? я имею ввиду, что да, может быть этот ip мой будет динамический и на клиентах придется после каждом смены адреса сервера заново его вводить, для какой то реальной задачи это наверное неудобно, но мне для диплома сойдет и так, мне же надо будет только продемонстрировать...

Добавлено через 5 минут
nedel, и какой адрес я по твоему должен вводить на клиенте для коннекта? 0.0.0.0?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
02.03.2016, 16:58
Цитата Сообщение от Penelent Посмотреть сообщение
с чего вы взяли что именно так?
Ну как бы основы основ, мне казалось все это знают, оказывается нет.

Добавлено через 44 секунды
Цитата Сообщение от Penelent Посмотреть сообщение
и какой адрес я по твоему должен вводить на клиенте для коннекта? 0.0.0.0?
да, в этом случае будут прослушиваться все интерфейсы.
0
Заблокирован
02.03.2016, 16:59  [ТС]
Kastaneda, разве я не прав?
Цитата Сообщение от Penelent Посмотреть сообщение
я имею ввиду, что да, может быть этот ip мой будет динамический и на клиентах придется после каждом смены адреса сервера заново его вводить, для какой то реальной задачи это наверное неудобно, но мне для диплома сойдет и так, мне же надо будет только продемонстрировать...
Добавлено через 1 минуту
Цитата Сообщение от Kastaneda Посмотреть сообщение
да, в этом случае будут прослушиваться все интерфейсы.
не понимаю что значит фраза "все интерфейсы" - типа Tcp, Udp, Raw... ??? мне кажется клиент тупо не сможет приконнектится
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
02.03.2016, 17:01
Цитата Сообщение от Penelent Посмотреть сообщение
Kastaneda, разве я не прав?
нет, ты пытаешься слушать IP совершенно левой машины, равносильно если бы ты пытался слушать сокет на компьютере своего соседа. Так понятней?

Добавлено через 58 секунд
Цитата Сообщение от Penelent Посмотреть сообщение
не понимаю что значит фраза "все интерфейсы" - типа Tcp, Udp, Raw... ???
нет, значит 127.0.0.1 и другие IP.
0
Заблокирован
02.03.2016, 17:01  [ТС]
Цитата Сообщение от Kastaneda Посмотреть сообщение
нет, ты пытаешься слушать IP совершенно левой машины, равносильно если бы ты пытался слушать сокет на компьютере своего соседа. Так понятней?
почему же левой, когда своей??? ты смотрел вообще что такое сайт 2ip.ru? он просто отображает твой же внешний ip, я его парсю со страницы и использую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2016, 17:01
Помогаю со студенческими работами здесь

Работа с протоколом UDP. "Требуемый адрес для своего контекста неверен"
Доброго времени суток! Пишу простую программу переписки. Для того, чтобы понять, как работать с протоколом UDP решил написать...

TCP клиент-сервер - Требуемый адрес для своего контекста не верен
Реализован клиент и сервер. Сервер - консольное приложение. Клиент - приложение WinForms СЕРВЕР public Socket...

SocketException Требуемый адрес для своего контекста неверен
Пишу простой сканер портов. Столкнулся с такой ошибкой - Вызвано исключение: &quot;System.Net.Sockets.SocketException&quot; в System.dll...

Требуемый адрес для своего контекста неверен
Во время отладки возникает ошибка Требуемый адрес для своего контекста неверен. Я не могу понять с чем это связано, firewall у меня...

Требуемый адрес для своего контекста неверен
Во время работы приложения возникает ошибка: Требуемый адрес для своего контекста неверен. Не могу понять почему. Код: private async...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru