Exception при CAsyncSocket.Detach()

6 отговора 0 прегледа
#1

Exception при CAsyncSocket.Detach()

Здравейте,

тормози ме един гаден Exception при извикване на методът Detach(). Идеята ми е да предам сокет между различни нишки и от документацията чета, че трябва да взема номерът на сокета с тази функция и да го предам него.

Случвало ли се е и на някой друг? Ползвам безумно старото Visual Studio 6. Шефът не дава пари за повече.

Благодаря,
Бъмбъри.

Отговор
в отговор на Bumbury #2

Re: Exception при CAsyncSocket.Detach()

ами сложи един try/catch блок и сподели на широките маси кво точно ти дава GetErrorMessage методът.
а и за мфц не виждам защо да ти сменят студиото.

Отговор
в отговор на бpaщaли koнпpyч #3

Re: Exception при CAsyncSocket.Detach()

Аз кретен. Дава Debug Assertion Failed, а не Exception в Sockcore.cpp, 344 ред. Грешката е, че handler-а практически има стойност INVALID_SOCKET и се проявява при извикването на AsyncSelect от Detach за обект от клас-наследник на CAsyncSocket.

Кодът в нишката е:

===========================
ServerSocket servSocket;
servSocket.connectSocket(outPort);
SOCKET sckt = servSocket.Detach(); --> Debug Assertion Failure
AfxBeginThread(serverThread, &sckt);
===========================

Поздрави,
Бъмбъри.

ПП: Аз и не искам ново студио; просто споменавам, че е 6-ти номер от поредицата. За тукашните цели си е достатъчно.

Отговор
в отговор на Bumbury #4

Re: Exception при CAsyncSocket.Detach()

убеден ли си, че connectSocket() е успешен?

Отговор
в отговор на Bumbury #5

Re: Exception при CAsyncSocket.Detach()

Признавам си, че ме мързи да ровя документацията, но ми се набива на очи типа на сокета, т.е. тфа ServerSocket. Сигурен ли си, че не трябва да е ClientSocket?

Прочее имплементацията на MFC за сокети не че не работи, ама си има някои недомислици и май точно ф частта за многонишковост.

Отговор
в отговор на Pek #6

Re: Exception при CAsyncSocket.Detach()

Да, проверявам го, свързан е.

Отговор
в отговор на Hekф #7

Re: Exception при CAsyncSocket.Detach()

ServerSocket е мой клас, който наследява CAsyncSocket и презаписва функцията send с моите типове данни.

Отговор