Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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 statement завжди отримує помилку при прийомі даних:
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,不同程序自己手改
            УК. 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