Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 19287|Válasz: 1

[Forrás] [Valódi harc] UDP System.Net.Sockets.SocketException

[Linket másol]
Közzétéve 2017. 03. 09. 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): A távoli hárda kényszerítette a meglévő kapcsolat lezárását.   A System.Net.Sockets.Socket.ReceiveFrom(Byte[] b



UDP kommunikáció közben, a try... használatával a catch utasítás mindig hibát kap adat elfogadásakor:
System.Net.Sockets.SocketException (0x80004005): A távoli hárda kényszerítette a meglévő kapcsolat lezárását.
A legbutaságosabb megoldás az volt, hogy semmit sem csináltak a catch statementben, és hagyták, hogy a hallgatási port funkció tovább futjon. De ez nem hosszú távú megoldás, és hosszú ideig keresgéltem az interneten, és megtaláltam a Microsoft magyarázatát.


Microsoft magyarázata: http://support.microsoft.com/kb/263823

Megoldás:








Előző:Sikeresen végrehajtott UDP lyuk [Újranyomás]
Következő:Javascrip{filter}t window.print() set the print style and content
 Háziúr| Közzétéve 2017. 03. 09. 10:17:54 |
Az objektum inicializálása után állítsuk be a tulajdonságokat a következőknek:
                    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 method (IOControlCode, byte[], byte[])
Az IOControlCode segítségével megadja a vezérlőkódot az socket alacsony szintű működési módjának beállításához.
paraméter
ioControlCode
Egy IOControlCode érték, amely meghatározza az elvégzendő művelet vezérlőkódját.
optionInValue
Egy Byte típusú tömb, amely tartalmazza a művelethez szükséges bemeneti adatokat.
optionOutValue
Egy Byte típusú tömb, amely tartalmazza a művelet által visszaadott kimeneti adatokat.
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com