Seleccionar error de lanzamiento WSAENOTSOCK

PROBLEMA QUE ESTOY ENFRENTANDO:-

La API Select (...) arroja un error cuando se llama con el conjunto FD_SET que contiene sockets IPv6 e IPv4 en Win7 Home premium, pero la misma aplicación funciona bien en otra máquina win7. Pero si uso solo el socket IPv6 o IPv4 en FD_SET, entonces funciona bien. Así que creo que el sistema admite tanto IPv6 como IPv4.

Intenté usar el servidor desde el siguiente enlace: -

http://msdn.microsoft.com/en-us/library/windows/desktop/ms738639%28v=vs.85%29.aspx

Incluso esta muestra es el mismo error de la llamada seleccionada.

Cualquiera puede ayudarme a obtener el motivo de este error y resolver este problema.

¡¡¡Gracias!!!

preguntado el 22 de mayo de 12 a las 09:05

1 Respuestas

Desafortunadamente, Windows no permite mezclar sockets de diferentes proveedores en la misma llamada para select. Esto se debe a que a cada proveedor se le permite implementar su propia select manipulador.

Los sockets contenidos dentro de las estructuras fd_set deben estar asociados con un único proveedor de servicios. -- seleccionar función

Windows elegirá un proveedor para enviar el select a (creo que el proveedor del primer socket en el conjunto), y ese proveedor no reconocerá los sockets del otro proveedor. Honestamente, no deberías estar usando select de todos modos, solo se proporciona para la compatibilidad con la interfaz de sockets BSD. Definitivamente no es el "camino de Windows".

contestado el 22 de mayo de 12 a las 11:05

Gracias por tu respuesta. Estoy usando un socket de familia de direcciones múltiples IPv4 e IPv6 de tipo TCP. Creo que en este caso el proveedor de servicios es el mismo. Es lo mismo que en el servidor compatible con IPv6 de Windows como en el enlace msdn.microsoft.com/en-us/library/windows/desktop/… Select es la forma estándar de obtener el socket en el que realmente se recibe la solicitud. Creo que hay alguna otra razón que podría estar relacionada con LSP que está causando este problema. - Rohit Garg

Tengo la razón detrás de este error. Un software de red instalado está agregando su LSP en la capa de socket. Este LSP está causando este error. - Rohit Garg

Ojalá pudiera decir que me sorprendió. - David Schwartz

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.