2010-07-06 14 views
7

Al llamar Socket.Select con las listas que se verifican para contener sólo los objetos de vaso, que a veces recibe el error An operation was attempted on something that is not a socket. No puedo encontrar un patrón para la ocurrencia.Socket.Select devuelve el error "Se intentó una operación en algo que no es un socket"

Socket.Select(readList, writeList, null, timeOut > 0 ? timeOut : 0); 
+0

Definitivamente ambiental, perseguir a los artículos de la BC. –

+4

Este es el error más genial que he visto este mes. Se necesita mucha humildad para que una computadora admita que simplemente no sabe lo que está pasando. –

+0

Acabo de resolver este problema "en mi caso" ejecutando el programa con derechos de administrador. – LikePod

Respuesta

7

Resulta que los enchufes estaban cerrados. Ese es un error tonto para que .NET se genere aunque solo sea por un socket cerrado.

+3

¿No es esto un problema de seguridad? La clase de socket aparentemente hizo llamadas nativas en un controlador cerrado. Ese es un ataque de reciclaje de asa. – usr

+0

Recibí esto "de repente" con una aplicación que a menudo no se conecta porque he perdido el contacto con la computadora de mano. I re "asiento" el portátil en el soporte, que es "vista" de nuevo por el escritorio, y todo está bien - a excepción de este tiempo, cuando llegué a esta "Se intentó una operación en algo que no es un socket" de error. –

+0

El cierre del proyecto y VS 2008 y la reapertura hicieron que desapareciera. ¡Varmints quemados por papá! Me refiero a gremlins! –

2

Hice una búsqueda en MSDN y conseguí un par de golpes. Veo here & here

Sin embargo, no he desarrollar nada en WinSock pero en Unix el camino Select se implementa requiere reiniciar el fd_set cada Select devoluciones. Quizás lo mismo se aplica a la implementación de WinSock de Select también. Si este es el caso, su readList, writeList pueden haber conseguido corrompido después de Select vuelto conduce al error que usted ha mencionado. Solo un pensamiento.

+0

Buenas ideas, pero reiniciamos las listas antes de llamar a 'Seleccionar' cada vez. Gracias sin embargo. –

+0

oh..y los enlaces de MSDN tampoco apuntan a un tipo de situación que pueda estar teniendo? –

+0

No, lo siento. Gracias sin embargo. –

0

tengo este problema cuando mi firewall máquina host está encendido. No puedo agregar desactivar mi firewall debido a las reglas de mi compañía. Así que he agregado reglas de entrada en mi máquina host para la comunicación después de que funciona bien.

Cuestiones relacionadas