Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 19287|Ответ: 1

[Источник] [Настоящий бой] UDP System.Net.Sockets.SocketException

[Скопировать ссылку]
Опубликовано 09.03.2017 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): удалённый хост заставил существующее соединение закрыть.   В System.Net.Sockets.Socket.ReceiveFrom(Byte[] b



Во время общения с UDP, используя try... Оператор catch всегда получает ошибку при приёме данных:
System.Net.Sockets.SocketException (0x80004005): удалённый хост заставил существующее соединение закрыть.
Самое глупое решение изначально — ничего не делать в catch statement и позволить функции прослушивания продолжать работать. Но это не долгосрочное решение, и я долго искал информацию в интернете и нашёл объяснение от Microsoft.


Объяснение Microsoft: http://support.microsoft.com/kb/263823

Решение:








Предыдущий:Успешно выполнено отверстие в UDP [Перепечатка]
Следующий:javascrip{filter}t window.print() задаёт стиль печати и содержимое
 Хозяин| Опубликовано 09.03.2017 10:17:54 |
После инициализации объекта задайте свойства следующим образом:
                    uint IOC_IN = 0x80000000;
                    uint IOC_VENDOR = 0x18000000;
                    uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12;
//uc为接收数据所使用的UdpClient,不同程序自己手改
            UC. Client.IOControl((int)SIO_UDP_CONNRESET, новый байт[] {Convert.ToByte(false)}, null);

Метод Socket.IOControl (IOControlCode, байт[], байт[])
Используйте IOControlCode для задания управляющего кода для установки низкоуровневого режима работы сокета.
параметр
ioControlCode
Значение IOControlCode, указывающее управляющий код для выполнения действия.
optionInValue
Массив типа Byte, содержащий входные данные, необходимые для операции.
optionOutValue
Массив типа Byte, содержащий выходные данные, возвращаемые операцией.
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com