[Problem] RPG-Server Programmierung unter Linux
-
@joomoo habe von select noch nicht gehört werde aber mal danach googeln
@thordk falsch. meine threads lauschen gar nicht. sie bekommen alle ein eigenes socket (den int wert den accept() zurückgibt) zugewiesen. dieser int wert wird per parameter an den thread übergeben.
-
Nur mal nebenbei:
char buf[BUFSIZE]; ... return (std::string)buf;
Das ist doch nicht valid?!
-
ich habe das nach einem thread in einem forum gemacht.
dort wird gesagt man soll das folgendermaßen machen:
char buf[]; string string1(buf);
also müsste das auch mit
(string)buf
gehen oder?
Hast du eine bessere Idee Kenny?
-
madmaurice schrieb:
ich habe das nach einem thread in einem forum gemacht.
dort wird gesagt man soll das folgendermaßen machen:
char buf[]; string string1(buf);
also müsste das auch mit
(string)buf
gehen oder?
Hast du eine bessere Idee Kenny?
Das eine ist ein Konstruktoraufruf, und das andere ein C-Style-Cast.
Man sollte in C++ möglichgst static_cast, reinterpret_cast etc. nutzen.
char buf[]; ... return std::string(buf);
Sollte das sein, was du suchst.
(Erzeugt ein temporäres String-Objekt mit dem Inhalt von buf und gibt dies zurück)
-
@kenny
habs geändert.jedoch löst das problem damit nicht.
@joomoo
ich finde leider keine tutorial bzw eine referenz die auf select() hinweißt.hast du da einen link?
-
-
ich blick in diesem select() nicht durch.
gibt es keinen weg das mit pthreads zu lösen?
-
doch, aber der ist scheiße
-
wenn ich richtig verstehe ist select() eine möglichkeit zu schauen ob eine neuer client connecten will bzw daten gesendet hat!?
-
ich blick einfach nich durch. also wie is denn dieser weg mit threads?
egal ob der scheiße ist oder nicht
-
der weg "mit threads" ist: du machst für jeden client der connected ist einen eigenen thread. das schöne daran ist dass du in dem thread mit blocking IO arbeiten kannst, was die sache viel einfacher macht. der nachtei ist dass es ein resourcen-fresser ist (threads sind i.a. recht "teuer").
-
das hab ich doch am anfang probiert!?
hab jedoch diesen blöden speicherzugriffsfehler bekommen!