_beginthreadx and socket

Posted by user638197 on Stack Overflow See other posts from Stack Overflow or by user638197
Published on 2011-03-03T01:49:21Z Indexed on 2011/03/04 23:25 UTC
Read the original article Hit count: 230

Filed under:

hi, i have a question about the _beginthreadx function In the third and fourth parameter:

if i have this line to create the thread

hThread=(HANDLE)_beginthreadex(0,0, &RunThread, &m_socket,CREATE_SUSPENDED,&threadID );

m_socket is the socket that i want inside the thread (fourth parameter)

and i have the RunThread function (third parameter) in this way

static unsigned __stdcall RunThread (void* ptr) {
    return 0;
}

It is sufficient to create the thread independently if m_socket has something or not?

Thanks in advance

Thank you for the response Ciaran Keating helped me understand better the thread

I'll explain a little more the situation

I´m creating the tread in this function inside a class

public: void getClientsConnection() { numberOfClients = 1; SOCKET temporalSocket = NULL; firstClient = NULL; secondClient = NULL;

    while (numberOfClients < 2)
    {
        temporalSocket = SOCKET_ERROR;
        while (temporalSocket == SOCKET_ERROR)
        {
            temporalSocket = accept(m_socket, NULL, NULL);
            //-----------------------------------------------
            HANDLE hThread;
             unsigned threadID;

            hThread=(HANDLE)_beginthreadex(0,0, &RunThread, &m_socket,CREATE_SUSPENDED,&threadID );
            WaitForSingleObject( hThread, INFINITE );
                                if(!hThread)
                                     printf("ERROR AL CREAR EL HILO: %ld\n", WSAGetLastError());
                                //-----------------------------------------------

        }
        if(firstClient == NULL)
        {
            firstClient = temporalSocket;
            muebleC1 = temporalSocket;
            actionC1 = temporalSocket;
            ++numberOfClients;
            printf("CLIENTE 1 CONECTADO\n");
        }
        else
        {
            secondClient = temporalSocket;
            muebleC2 = temporalSocket;
            actionC2 = temporalSocket;
            ++numberOfClients;
            printf("CLIENTE 2 CONECTADO\n");
        }
    }
}

What i'm trying to do is to have the socket inside the thread while wait for a client connection

Is this feasible as i have the code of the thread?

I can change the state of the thread that is not a problem

Thanks again

© Stack Overflow or respective owner

Related posts about c++