Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 19287|Odpoveď: 1

[Zdroj] [Skutočný boj] UDP System.Net.Sockets.SocketException

[Kopírovať odkaz]
Zverejnené 9. 3. 2017 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): Vzdialený hostiteľ vynútil uzavretie existujúceho spojenia.   V System.Net.Sockets.Socket.ReceiveFrom(Byte[] b



Počas komunikácie s UDP, pomocou try... Príkaz catch vždy dostane chybu pri prijímaní dát:
System.Net.Sockets.SocketException (0x80004005): Vzdialený hostiteľ vynútil uzavretie existujúceho spojenia.
Najhlúpejším riešením bolo nerobiť nič v catch príkaze a nechať funkciu počúvacieho portu bežať ďalej. Ale toto nie je dlhodobé riešenie, a tak som dlho hľadal online a našiel som vysvetlenie od Microsoftu.


Vysvetlenie Microsoftu: http://support.microsoft.com/kb/263823

Riešenie:








Predchádzajúci:Úspešne vykonaný UDP dier [Reprint]
Budúci:Javascrip{filter}t window.print() stanovuje štýl tlače a obsah
 Prenajímateľ| Zverejnené 9. 3. 2017 10:17:54 |
Po inicializácii objektu nastavte vlastnosti nasledovne:
                    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);

Metóda Socket.IOControl (IOControlCode, byte[], byte[])
Použite IOControlCode na špecifikáciu riadiaceho kódu na nastavenie nízkoúrovňového prevádzkového režimu pre socket.
parameter
ioControlCode
Hodnota IOControlCode, ktorá určuje riadiaci kód pre vykonanú akciu.
optionInValue
Pole typu Bajt obsahujúce vstupné údaje požadované operáciou.
optionOutValue
Pole typu Bajt, ktoré obsahuje výstupné dáta vrátené operáciou.
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com