UdpClient Constructor Throwing SocketException - PullRequest
2 голосов
/ 28 июня 2011

Возникает исключение при создании объекта UdpClient, указывающего семейство IPv4. Это происходит только на одной 64-битной машине с Windows 7, другие машины с той же ОС работают нормально.

Точное исключение:

System.Net.Sockets.SocketException (0x80004005): An invalid argument was supplied
   at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
   at System.Net.Sockets.UdpClient.createClientSocket()

SocketException.ErrorCode - это WSAEINVAL 10022, неверный аргумент.

Код, который выдает это исключение:

this.udpClient = new UdpClient(AddressFamily.InterNetwork);

Может кто-нибудь объяснить, что говорит мне это исключение? Как может IPv4 быть недопустимым аргументом для нового клиента UDP?

ОБНОВЛЕНИЕ : Это происходит только при запуске приложения с сетевого диска. Локальный запуск не вызывает этого исключения.

Ответы [ 2 ]

1 голос
/ 28 июня 2011

В документах рекомендуется проверить SocketException::ErrorCode в этом случае.Какова ценность этого?Должен быть поучительным.Я думаю, что с семейным параметром все в порядке, или вы получите ArgumentException.

. Если вы получаете SocketException, используйте SocketException :: ErrorCode для получения конкретного кода ошибки.Получив этот код, вы можете обратиться к документации по коду ошибки API Windows Sockets версии 2 в MSDN для подробного описания ошибки.

0 голосов
/ 28 июня 2011

0x80004005 - доступ запрещен, у вас нет прав на создание сокета, может быть, ваш брандмауэр?

Или ваш сокет используется, вы убили программу, не прерывая сокет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...