Blocking Calls
-
Hi!
Ich möchte gerne wissen, wie man in C++ einen Chat programmieren kann. Ich kann zwar chatten, aber immer nur abwechselnd, dass man erst was eingeben kann, wenn was empfangen wurde. Das ist ja so weil send() und recv() Blocking-Calls sind. Aber wie kann man dieses Problem lösen?
-
indem du select() dir anguckst.
-
Das hilft mir noch nicht wirklich weiter. Zudem ist es englisch auch noch ein bisschen schwerer zu verstehen. Kannst du/Kann mir jemand erklären, was ich genau brauche, um die Blockierung von send() und recv() aufzuheben? Oder mir genauer erklären wie select() geht? Was dazu gehört, soweit ich weiß: FD_SET?
Danke!
-
ok mal auf deutsch http://www.c-worker.ch/
select() überwacht alle sockets die du angelegt hast und ob was eingegeben wurde. dieses musst du dann nur noch auswerten. im prinzip musst du deinen socket in eine "liste" abspeichern. und dann select aufrufen, dass wiederum in einem bestimmten zeitintervall alle in der "liste" gespeicherten sockets überwacht und verschiedene reaktionen gibt.
nur mal sehr laienhaft ausgedrückt
wenn dir die seite nicht genügt, kann ich dir auch ein beispielprogramm schreiben. oder einfach googlen
-
Mein Problem ist ja, dass ich meine Kentnisse bisher von www.c-worker.ch habe *gg*. Nur in dem einfachen Beispiel ist nicht erklärt, wie man die Blocking Calls umgeht. Es wäre echt nett, wenn du mir ein Programm schreiben könntest. Kannst mich ja mal kontaktieren. florian.labu@web.de(E-Mail), florianlabu@hotmail.com(MSN messenger & email), ICQ: 115637732(das aber lieber nicht, bin ich selten on *g*)
-
samstag abend vor sieben uhr haste post
muss erstmal mich durch meinen verworrenen code durchkämpfen
-
Danke schonmal im Vorraus!