Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 19287|Răspunde: 1

[Sursă] [Luptă reală] UDP System.Net.Sockets.SocketExceptionException

[Copiază linkul]
Postat pe 09.03.2017 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): Gazda la distanță a forțat închiderea unei conexiuni existente.   În System.Net.Sockets.Socket.ReceiveFrom(Byte[] b



În timpul comunicării UDP, folosind try... Instrucțiunea catch primește întotdeauna o eroare când acceptă date:
System.Net.Sockets.SocketException (0x80004005): Gazda la distanță a forțat închiderea unei conexiuni existente.
Cea mai proastă soluție de la început a fost să nu facă nimic în instrucțiunea catch și să lase funcția portului de ascultare să continue să ruleze. Dar aceasta nu este o soluție pe termen lung și am căutat mult timp online și am găsit explicația Microsoft.


Explicația Microsoft: http://support.microsoft.com/kb/263823

Soluție:








Precedent:A realizat cu succes o gaură UDP [Reprintare]
Următor:Javascrip{filter}t window.print() setează stilul de tipărire și conținutul
 Proprietarul| Postat pe 09.03.2017 10:17:54 |
După inițializarea obiectului, setați proprietățile astfel:
                    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);

Metoda Socket.IOControl (IOControlCode, octet[], octet[])
Folosește IOControlCode pentru a specifica codul de control pentru a seta un mod de operare de nivel jos pentru soclu.
parametru
ioControlCode
O valoare IOControlCode care specifică codul de control pentru acțiunea ce urmează a fi efectuată.
optionInValue
Un tablou de tip Byte care conține datele de intrare necesare operației.
optionOutValue
Un tablou de tip Byte care conține datele de ieșire returnate de operație.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com