Question

La tentative d'envoi d'un message via un socket a échoué avec l'erreur 10038 de WinSock. Après environ 40 secondes, les messages ont été reçus avec succès à partir du même socket. Par la suite, send () réussit également dans le même socket. Ce comportement a été observé dans Windows Server 2003. S'agit-il d'un comportement connu avec WinSock et Windows Server 2003?

Était-ce utile?

La solution

L'erreur 10038 de Winsock signifie "Une opération a été tentée sur quelque chose qui n'est pas un socket".

Petit truc pour trouver des informations sur les codes d'erreur (utile pour toutes sortes de codes d'erreur Windows):

  • Ouvrez une invite de commande
  • Type "net helpmsg 10038"

Dans quelle langue votre application est-elle écrite? Si c / c ++, vous utilisez peut-être un handle de socket invalide?

Autres conseils

Merci beaucoup à a_mole pour l’idée de vérifier la présence de fournisseurs Winsock en couches. Nous rencontrons des problèmes avec certains de nos ordinateurs et de TimesTen DB. Lorsque nous essayons d'installer un client DSN ODBC, nous obtenons une erreur 10038. En examinant les résultats nets des ordinateurs concernés, nous avons constaté que Embassy Trust Suite de Wave Systems était installé. Il est évident que Dell l'a pré-installé sur certains de ses ordinateurs. Quoi qu’il en soit, lors de la désinstallation de ce logiciel, le problème a été résolu.

Merci encore

Lou

Ce n’est pas un problème de plate-forme, je peux le garantir. Très probablement, la variable que vous utilisez pour accéder au descripteur de socket n’est pas thread-safe et est utilisée dans l’appel send () avant la création du socket.

Une autre cause possible est la présence de fournisseurs Winsock en couches. "netsh winsock show" Une invite de commande vous indiquera les fournisseurs installés et vous pourrez essayer de supprimer ceux qui ne sont pas de Microsoft.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top