Du bist nicht angemeldet.

Werbeanzeige

Anonymous

unregistriert

1

03.01.2005, 21:05

Winsock, c++ und recv()-Prob!

Hi,
ich möchte zum Test ein kleines Chatprogramm in der DOS-Konsole schreiben, ich habs auch geschafft, aber ich hab 1 Problem. recv() Ist ein Blocking Call, also ein Befehl, der solange auf etwas wartet bis er fertig ausgeführt wird. Bei einem chat eher unpraktisch, da beide ihre nachrichten erst gegenseitig empfangen, wenn sie beide Enter gedrückt haben.
Also Person 1 schreibt "abc".
Person 2 schreibt irgendeinen langen Text und schickt ihn 5 MInuten später los. Erst jetzt empfängt Person 2 den Text "abc". Was kann ich da gegen tun?

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

2

03.01.2005, 21:27

mit fallen spontan zwei möglichkeiten ein:
entweder dich mich multithreading auseinander setzen oder die winsock funktionen der mfc verwenden. letzteres ist glaube ich einfacher.

3

04.01.2005, 03:12

jaja .... leider gibts noch ne dritte Möglichkeit, eine relativ einfache.

Such mal nach FDset und Select() ;)

Nox

Supermoderator

Beiträge: 5 274

Beruf: Student

  • Private Nachricht senden

4

09.01.2005, 17:36

Der eindeutig bessere Weg ist per CreateThread...

dot

Supermoderator

Beiträge: 9 850

Wohnort: Graz

  • Private Nachricht senden

5

09.01.2005, 18:12

unter windows gibts dann auch noch die asynchronen socket funktionen ;)

die würd ich verwenden...außer du hast vor das ganze auf ein andres os zu portieren

Nox

Supermoderator

Beiträge: 5 274

Beruf: Student

  • Private Nachricht senden

6

09.01.2005, 22:08

Der Trend geht dahin, dass man wohl in 2-3Jahren nur noch die volle Leistung nutzen kann, wenn man paralell Anweisungen ausführen lässt und daher ist es vielleicht ganz günstig sich schonmal mit Multithreading zu beschäfftigen ;)

Werbeanzeige