Προς το περιεχόμενο

Sockets - Threads


papalive

Προτεινόμενες αναρτήσεις

Δημοσ.

Πρόσεξε να δεις το πρόβλημα μου.

 

Ο client μπορεί και επικοινωνεί με τον server και να ανταλλάσει μηνυματα κανονικά.Δες και την φωτό.

 

Απο εκεί και πέρα απο την στιγμή που εκτελεστεί η εντολή accept(...) απο τον server τότε δεν θα πρέπει να δημιουργηθεί το πρώτο thread ? ?

 

Χρησιμοποιώ τον παρακάτω κώδικα για το Thread και χρησιμοιώ αντικειμενοστρεφή σχεδίαση και GUI .

 

void serverClass::creThread(){

 

if (CreateThread(NULL, //Choose default security

0, //Default stack size

(LPTHREAD_START_ROUTINE)ThreadProc(i),

//Routine to execute

NULL, //Thread parameter

0, //Immediately run the thread

&dwThreadId /*Thread Id*/) == NULL)

{

printf("Error Creating Thread#: %d\n",i);

//return(1);

}

else

{

//printf("Global Thread Count: %d %d %d\n", nGlobalCount, nThreads, i);

Sleep(3000);

}

}

 

 

//Thread Routine

DWORD serverClass::ThreadProc (int i)

{

//Print Thread Number

//printf ("Thread # is: %d\n", *((int*)lpdwThreadParam));

//Reduce the count

//nGlobalCount--;

//ENd of thread

//return 0;

}

 

αλλά οταν πρέπει να εκτελεστεί η ThreadProc(i) κολάει δυστηχώς.

 

Μάλλον δεν εχω καταλάβει κάτι η δεν μπορεί να λειτουργήσει με αυτό τον τρόπο.

ριξε μια ματιά ...

post-155750-129063079039_thumb.jpg

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...