Morgen,
ich habe da ein Problem beim erstellen einer Socketverbindung durch 2 Threads.
hier bei den threads komme ich net weiter, da ich write- bzw. sendMessage net rein krieg
hier ist noch der code der beiden aufzurufenden Methoden
meine frage würde das mit den threads so gehen und wie krieg ich send- und writeMessage?
ich habs gerade auch mal so durchlaufen lassen, da kam:
Schon mal danke für alle hilfe.
Grüße Ischterai
ich habe da ein Problem beim erstellen einer Socketverbindung durch 2 Threads.
Code:
int main(){
SenderEmpfaenger *se = new SenderEmpfaenger();
_beginthread(&writeThread, 0, (void*)12);
_beginthread(&sendThread, 0, (void*)12);
}
hier bei den threads komme ich net weiter, da ich write- bzw. sendMessage net rein krieg
Code:
void __cdecl writeThread(void *)
{
//hier soll writeMessage aufgerufen werden
}
void __cdecl sendThread(void *)
{
//hier soll sendMessage aufgerufen werden
}
hier ist noch der code der beiden aufzurufenden Methoden
Code:
void SenderEmpfaenger::sendMessage(string a){
int bytes;
bytes = send(this->Sendersocket, a.c_str(), strlen(a.c_str()), 0);
if (bytes == -1)
{
perror("send() in sendMessage() failed");
}
}
void SenderEmpfaenger::writeMessage(){
printf("Banner is \"%s\"\n", this->getNextMessage());
}
meine frage würde das mit den threads so gehen und wie krieg ich send- und writeMessage?
ich habs gerade auch mal so durchlaufen lassen, da kam:
1>------ Erstellen gestartet: Projekt: Sender und Empaenger, Konfiguration: Debug Win32 ------
1>Verknüpfen...
1>SenderEmpfaenger.obj : error LNK2028: Nicht aufgelöstes Token (0A000280) ""extern "C" unsigned long __stdcall inet_addr(char const *)" (?inet_addr@@$$J14YGKPBD@Z)", auf das in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)" verwiesen wird.
1>SenderEmpfaenger.obj : error LNK2028: Nicht aufgelöstes Token (0A00028D) ""extern "C" unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z)", auf das in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)" verwiesen wird.
1>SenderEmpfaenger.obj : error LNK2028: Nicht aufgelöstes Token (0A0002AB) ""extern "C" int __stdcall recv(unsigned int,char *,int,int)" (?recv@@$$J216YGHIPADHH@Z)", auf das in Funktion ""private: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall SenderEmpfaenger::getNextMessage(void)" (?getNextMessage@SenderEmpfaenger@@$$FAAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)" verwiesen wird.
1>SenderEmpfaenger.obj : error LNK2028: Nicht aufgelöstes Token (0A0002AD) ""extern "C" int __stdcall bind(unsigned int,struct sockaddr const *,int)" (?bind@@$$J212YGHIPBUsockaddr@@H@Z)", auf das in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)" verwiesen wird.
1>SenderEmpfaenger.obj : error LNK2028: Nicht aufgelöstes Token (0A0002B2) ""extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)", auf das in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)" verwiesen wird.
1>SenderEmpfaenger.obj : error LNK2028: Nicht aufgelöstes Token (0A0002D8) ""extern "C" int __stdcall send(unsigned int,char const *,int,int)" (?send@@$$J216YGHIPBDHH@Z)", auf das in Funktion ""public: void __thiscall SenderEmpfaenger::sendMessage(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?sendMessage@SenderEmpfaenger@@$$FQAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)" verwiesen wird.
1>SenderEmpfaenger.obj : error LNK2028: Nicht aufgelöstes Token (0A0002EC) ""extern "C" int __stdcall listen(unsigned int,int)" (?listen@@$$J18YGHIH@Z)", auf das in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)" verwiesen wird.
1>SenderEmpfaenger.obj : error LNK2028: Nicht aufgelöstes Token (0A000323) ""extern "C" unsigned int __stdcall accept(unsigned int,struct sockaddr *,int *)" (?accept@@$$J212YGIIPAUsockaddr@@PAH@Z)", auf das in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)" verwiesen wird.
1>SenderEmpfaenger.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall send(unsigned int,char const *,int,int)" (?send@@$$J216YGHIPBDHH@Z)" in Funktion ""public: void __thiscall SenderEmpfaenger::sendMessage(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?sendMessage@SenderEmpfaenger@@$$FQAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)".
1>SenderEmpfaenger.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned int __stdcall accept(unsigned int,struct sockaddr *,int *)" (?accept@@$$J212YGIIPAUsockaddr@@PAH@Z)" in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)".
1>SenderEmpfaenger.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall listen(unsigned int,int)" (?listen@@$$J18YGHIH@Z)" in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)".
1>SenderEmpfaenger.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall bind(unsigned int,struct sockaddr const *,int)" (?bind@@$$J212YGHIPBUsockaddr@@H@Z)" in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)".
1>SenderEmpfaenger.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z)" in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)".
1>SenderEmpfaenger.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned long __stdcall inet_addr(char const *)" (?inet_addr@@$$J14YGKPBD@Z)" in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)".
1>SenderEmpfaenger.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)" in Funktion ""public: __thiscall SenderEmpfaenger::SenderEmpfaenger(void)" (0SenderEmpfaenger@@$$FQAE@XZ)".
1>SenderEmpfaenger.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall recv(unsigned int,char *,int,int)" (?recv@@$$J216YGHIPADHH@Z)" in Funktion ""private: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall SenderEmpfaenger::getNextMessage(void)" (?getNextMessage@SenderEmpfaenger@@$$FAAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)".
1>Z:\workspace 2\Sender und Empaenger\Debug\Sender und Empaenger.exe : fatal error LNK1120: 16 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://z:\workspace 2\Sender und Empaenger\Sender und Empaenger\Debug\BuildLog.htm" gespeichert.
1>Sender und Empaenger - 17 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Schon mal danke für alle hilfe.
Grüße Ischterai