Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 19287|Antwort: 1

[Quelle] [Tatsächlicher Kampf] UDP System.Net.Sockets.SocketException

[Link kopieren]
Veröffentlicht am 09.03.2017 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): Der entfernte Host zwang eine bestehende Verbindung zum Schließen.   In System.Net.Sockets.Socket.ReceiveFrom(Byte[] b



Während der UDP-Kommunikation, mit Try... Die catch-Anweisung erhält immer einen Fehler, wenn Daten akzeptiert werden:
System.Net.Sockets.SocketException (0x80004005): Der entfernte Host zwang eine bestehende Verbindung zum Schließen.
Die dümmste Lösung war sowieso, in der Catch-Anweisung nichts zu tun und die Listening-Port-Funktion weiterlaufen zu lassen. Aber das ist keine langfristige Lösung, und ich habe lange online gesucht und Microsofts Erklärung gefunden.


Microsofts Erklärung: http://support.microsoft.com/kb/263823

Lösung:








Vorhergehend:Erfolgreich ein UDP-Loch durchgeführt [Nachdruck]
Nächster:Javascrip{filter}t window.print() legt den Druckstil und den Inhalt fest
 Vermieter| Veröffentlicht am 09.03.2017 10:17:54 |
Nach der Initialisierung des Objekts setzen Sie die Eigenschaften wie folgt:
                    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-Methode (IOControlCode, byte[], byte[])
Verwenden Sie IOControlCode, um Steuercode zu spezifizieren, der einen Low-Level-Betriebsmodus für den Socket einstellt.
Parameter
ioControlCode
Ein IOControlCode-Wert, der den Steuercode für die auszuführende Aktion angibt.
optionInValue
Ein Array vom Typ Byte, das die für die Operation benötigten Eingabedaten enthält.
optionOutValue
Ein Array vom Typ Byte, das die von der Operation zurückgegebenen Ausgabedaten enthält.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com