Hallo zusammen,
ich möchte gern nach der Kommunikationsherstellung paar neue Threads bei meinem Programm starten
leider geht's mit pthread_create() nicht so einfach. Ich hab schon vieles mit dem Funbktionspointer ausprobiert und bin bei der Lösung stehen geblieben
Das Problem an der Lösung ist, dass hier der Compiler zwar nicht meckert, aber das Programm stürzt sofort ab. Habt ihr vielleich eine Idee wier man das lösen kann?
Grüße July
ich möchte gern nach der Kommunikationsherstellung paar neue Threads bei meinem Programm starten
C++:
do{
rc = listen(acceptSocket, 10);
if (rc == SOCKET_ERROR)
{
cout << "Fehler: listen, fehler code:" << WSAGetLastError()
<< endl;
return 1;
} else
{
cout << "acceptSocket ist im listen Modus...." << endl;
sock = accept(acceptSocket, NULL, NULL);
if (sock == INVALID_SOCKET)
{
cout << "Fehler: accept, fehler code: "
<< WSAGetLastError() << endl;
return 1;
} else
{
cout << "Neue Verbindung wurde akzeptiert!" << endl;
pthread_create(&p_thread, NULL, &receive_thread,(void*)&sock);
Sleep(1);
}
}
} while (1);
leider geht's mit pthread_create() nicht so einfach. Ich hab schon vieles mit dem Funbktionspointer ausprobiert und bin bei der Lösung stehen geblieben
C++:
extern "C" {
void *receive_thread(void *sock){
char msg_buf[10000];
Connection con;
message_t msg;
con.receive_message((SOCKET *)sock, msg_buf, &msg);
cout << "server get message"<<endl;
cout<< msg.clientId<<endl;
//ueberprüfen ob die Meldung an dem richtigen Empfaenger gelandet ist
switch(msg.nachArt)
{
case FEUER:
break;
case STOERUNG:
break;
case ABSCHALTUNG:
break;
case SONSTIGES:
break;
case RESET:
break;
case STATUS:
break;
case STATUSENDE:
break;
default:
break;
}
return (0);
}
}
Grüße July
Zuletzt bearbeitet von einem Moderator: