Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 19287|Respuesta: 1

[Fuente] [Combate real] UDP System.Net.Sockets.SocketException

[Copiar enlace]
Publicado en 9/3/2017 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): El host remoto obligó a cerrar una conexión existente.   En System.Net.Sockets.Socket.ReceiveFrom(Byte[] b



Durante la comunicación UDP, usando try... La instrucción catch siempre recibe un error al aceptar datos:
System.Net.Sockets.SocketException (0x80004005): El host remoto obligó a cerrar una conexión existente.
La solución más absurda desde el principio fue no hacer nada en la sentencia catch y dejar que la función de puerto de escucha siguiera funcionando. Pero esto no es una solución a largo plazo, y busqué en internet durante mucho tiempo y encontré la explicación de Microsoft.


Explicación de Microsoft: http://support.microsoft.com/kb/263823

Solución:








Anterior:Realizado con éxito un agujero UDP [Reimpresión]
Próximo:Javascrip{filter}t window.print() establece el estilo de impresión y el contenido
 Propietario| Publicado en 9/3/2017 10:17:54 |
Después de inicializar el objeto, establezca las propiedades de la siguiente manera:
                    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, nuevo byte[] {Convert.ToByte(false)}, null);

Método Socket.IOControl (IOControlCode, byte[], byte[])
Utiliza IOControlCode para especificar el código de control y establecer un modo de funcionamiento de bajo nivel para el socket.
parámetro
ioControlCode
Un valor IOControlCode que especifica el código de control para la acción que se va a realizar.
optionInValue
Un array de tipo Byte que contiene los datos de entrada requeridos por la operación.
opciónOutValue
Un array de tipo Byte que contiene los datos de salida devueltos por la operación.
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com