Winsock - ошибка 10038 - сервер Win2K3 - непонятное поведение - PullRequest
0 голосов
/ 19 сентября 2008

Попытка отправить сообщение через сокет завершилась неудачно с ошибкой WinSock 10038. Примерно через 40 секунд сообщения успешно принимаются из того же сокета, и впоследствии send () также успешно выполняется в том же сокете. Такое поведение наблюдается в Windows Server 2003. Известно ли это как-нибудь в WinSock и Windows Server 2003?

Ответы [ 3 ]

4 голосов
/ 19 сентября 2008

Ошибка Winsock 10038 означает «Была предпринята попытка выполнить что-то, что не является сокетом».

Небольшой трюк, чтобы найти информацию о кодах ошибок (полезно для всех видов кодов ошибок Windows):

  • Открыть командную строку
  • Тип "net helpmsg 10038"

На каком языке написано ваше заявление? Если это C / C ++, может быть, вы используете неверный дескриптор сокета?

1 голос
/ 03 февраля 2010

Большое спасибо a_mole за идею проверки поставщиков многоуровневых winsock. У нас проблемы с некоторыми из наших ПК и БД TimesTen. Когда мы пытаемся настроить ODBC Client DSN, мы получаем ошибку 10038. Изучив вывод netsh с соответствующих компьютеров, мы обнаружили, что на них установлен Embassy Trust Suite от Wave Systems. Очевидно, Dell предварительно установил это на некоторых своих ПК. В любом случае, при удалении этого программного обеспечения проблема была решена.

Еще раз спасибо

Л

0 голосов
/ 21 февраля 2009

Не проблема платформы, я могу это гарантировать. Скорее всего, любая переменная, которую вы используете для доступа к дескриптору сокета, не является поточно-ориентированной и используется в вызове send () перед созданием фактического сокета.

Другой возможной причиной является наличие многоуровневых провайдеров winsock. «netsh winsock show» в приглашении cmd покажет вам установленных провайдеров, и вы можете попробовать удалить любых сторонних поставщиков.

...