moin moin
ich programmiere eine multithreaded server applikation, in der threads (nacheinander) gestartet werden, die dann jeweils auf eine Verbindung warten und nachdem Accept(...) mit TRUE returned hat, einen neuen thread erstellen, der auch wieder auf eine Verbindung wartet und so weiter
Nun bekommen ich allerdings bei Accept( &socket) ein ASSERT:
Woran könnte das liegen? ich hab das rConnectedSocket auch mal mit Create intialisiert, dann kommt das ASSERT schon bei diesem Create:
Wo liegt denn das Problem? Im prinzip mach ich das mit den Sockets so:
CSocket listen, s;
listen.Create( 12345);
listen.Listen();
listen.Accept( &s);
in dem Fall stürzt das Programm in Accept ab
wenn ich es so mache:
CSocket listen, s;
s.Create( 12345);
listen.Create( 12345);
....
dann schon in s.Create(12345);
Bin für jeden Tipp dankbar
Gruß 0!=0
ich programmiere eine multithreaded server applikation, in der threads (nacheinander) gestartet werden, die dann jeweils auf eine Verbindung warten und nachdem Accept(...) mit TRUE returned hat, einen neuen thread erstellen, der auch wieder auf eine Verbindung wartet und so weiter
Nun bekommen ich allerdings bei Accept( &socket) ein ASSERT:
Code:
BOOL CAsyncSocket::Accept(CAsyncSocket& rConnectedSocket,
SOCKADDR* lpSockAddr, int* lpSockAddrLen)
{
ASSERT(rConnectedSocket.m_hSocket == INVALID_SOCKET);
...
Woran könnte das liegen? ich hab das rConnectedSocket auch mal mit Create intialisiert, dann kommt das ASSERT schon bei diesem Create:
Code:
BOOL CAsyncSocket::Socket(int nSocketType, long lEvent,
int nProtocolType, int nAddressFormat)
{
ASSERT(m_hSocket == INVALID_SOCKET);
...
Wo liegt denn das Problem? Im prinzip mach ich das mit den Sockets so:
CSocket listen, s;
listen.Create( 12345);
listen.Listen();
listen.Accept( &s);
in dem Fall stürzt das Programm in Accept ab
wenn ich es so mache:
CSocket listen, s;
s.Create( 12345);
listen.Create( 12345);
....
dann schon in s.Create(12345);
Bin für jeden Tipp dankbar

Gruß 0!=0