Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 19287|Odgovoriti: 1

[Vir] [Dejanski boj] UDP System.Net.Sockets.SocketException

[Kopiraj povezavo]
Objavljeno na 9. 03. 2017 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): Oddaljeni gostitelj je prisilil obstoječo povezavo, da se zapre.   V System.Net.Sockets.Socket.ReceiveFrom(Byte[] b



Med komunikacijo UDP, z uporabo try... Catch izjava vedno dobi napako pri sprejemanju podatkov:
System.Net.Sockets.SocketException (0x80004005): Oddaljeni gostitelj je prisilil obstoječo povezavo, da se zapre.
Najbolj neumna rešitev je bila, da v catch izjavi ne narediš ničesar in pustiš, da funkcija poslušalnega porta teče naprej. A to ni dolgoročna rešitev, dolgo sem iskal na spletu in našel Microsoftovo razlago.


Microsoftova razlaga: http://support.microsoft.com/kb/263823

Rešitev:








Prejšnji:Uspešno izveden UDP luknja [Ponatis]
Naslednji:Javascrip{filter}t window.print() določa slog tiskanja in vsebino
 Najemodajalec| Objavljeno na 9. 03. 2017 10:17:54 |
Po inicializaciji objekta nastavite lastnosti takole:
                    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, new byte[] {Convert.ToByte(false)}, null);

Socket.IOControl metoda (IOControlCode, bajt[], bajt[])
Uporabite IOControlCode za določitev kontrolne kode za nastavitev nizkonivojski način delovanja za vtičnico.
parameter
ioControlCode
Vrednost IOControlCode, ki določa kontrolno kodo za dejanje, ki ga je treba izvedeti.
optionInValue
Polje tipa Bajt, ki vsebuje vhodne podatke, potrebne za operacijo.
optionOutValue
Polje tipa Bajt, ki vsebuje izhodne podatke, vrnjene z operacijo.
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com