Pregunta

El intento de enviar un mensaje a través de un socket falló con el error WinSock 10038.Después de unos 40 segundos, los mensajes se reciben correctamente desde el mismo socket y, posteriormente, send() también se recibe correctamente en el mismo socket.Este comportamiento se ha observado en Windows Server 2003.¿Existe algún comportamiento conocido con WinSock y Windows Server 2003?

¿Fue útil?

Solución

El error 10038 de Winsock significa "Se intentó una operación en algo que no es un socket".

Pequeño truco para encontrar información sobre códigos de error (útil para todo tipo de códigos de error de Windows):

  • Abrir un símbolo del sistema
  • Escriba "net helpmsg 10038"

¿En qué idioma está escrita su solicitud?Si es C/C++, ¿podría ser que esté utilizando un identificador de socket no válido?

Otros consejos

Muchas gracias a a_mole por la idea de buscar proveedores de winsock en capas.Estamos teniendo problemas con algunas de nuestras PC y TimesTen DB.Cuando intentamos configurar el DSN del cliente ODBC, obtenemos un error 10038.Al examinar la salida netsh de las PC afectadas, encontramos que tienen instalado Embassy Trust Suite de Wave Systems.Evidentemente, Dell lo preinstaló en algunas de sus PC.De todos modos, al desinstalar este software, el problema se solucionó.

gracias de nuevo

lou

No es un problema de plataforma, lo puedo garantizar.Lo más probable es que cualquier variable que esté utilizando para acceder al identificador del socket no sea segura para subprocesos y se utilice en la llamada send() antes de que se cree el socket real.

Otra posible causa es la presencia de proveedores de calcetines en capas."netsh winsock show" en el mensaje cmd le mostrará los proveedores instalados y podrá intentar eliminar los que no sean de Microsoft.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top