Einsteiger versucht sich an DOS-Chat



  • nicht in allem, was wie dos aussieht ist auch dos drin 😉



  • ich hab echt keinen Plan worauf er jettz hinaus will... könnte mir das mal einer erklären?

    noch was, ich finde diese selectfunktion einfach nirgends... irgendwie fühl ich mich langsam zu blöde für google



  • @Auron_X

    ganz einfach: gib zu, daß du win32 konsole meinst.. oder bist du wirklich unter dos mit 16 bit ?? 😉



  • schau dich mal bei http://www.c-worker.ch/ um.. unter winsock.

    der hat ganz gute tutorials.

    Winsock Tutorial von c-worker.ch (Teil 4: Mehrere Clients mit select())
    

    passt --



  • oh vielen dank!

    okay, ja ich bekenne mich schuldig, dann vermute ich mal ist es genau das was man auch bei USB-Geräten entdeckt, DOS kann kein USB und unter der windoof-Konsole gehts dann^^

    edit: okay, hab mir das select-tut durchgelesen, allerdings weiß ich noch nicht ganz wie ich das dazu nutzen kann...
    da ja keine nachrichten kommen können während ich die nachricht eingebe....

    ich nutze dafür gets, vllt. sollte ich mir da nochmal ne alternative zu überlegen...



  • @Bashar
    Im normalen DOS gibts natürlich keine Threads, aber es gibt Treiber, die auch DOS multithreadfähig machen können.

    Allerdings hattest du natürlich recht. Es war die Win32-Konsole gemeint. Es ist echt verführerisch das Teil DOS zu nennen 😃



  • @ Auron_X

    Ich bin übrigens auch gerade dabei ein Chatprogramm für die Win Konsole zu schreiben, um mich mit der Netzwerkprogrammierung vertraut zu machen.

    Allerdings habe ich mein Programm so aufgebaut, dass er nur die Clients verwaltet und die Daten an die Clients verteilt. Es ist also möglich mit mehr als 2 Clients zu chatten.
    Ich habe aber auch keine threads sondern Select gewählt, ich denke bei "kleineren" Netzwerkanwendungen macht sich das auch performancemäßig noch nicht so bemerkbar.

    Du kannst ja gerne mal Kontakt zu mir aufnehmen, dann können wir uns was austauschen.

    Ingmar



  • eine frage hab ich mal grad zu select:

    timeval wait;
    wait.tv_sec = 0;
    wait.tv_usec = 100;
    
    select(0,&fdSet,NULL,NULL,wait);
    

    das is jetzt mal nen auszug...

    und ich bekomme folgenden Fehler:
    106 C:\Dokumente und Einstellungen\Sandbrink\Eigene Dateien\C++ Files\netzwerk\main.cpp
    cannot convert `timeval' to `const timeval
    ' for argument `5' to
    *

    wisst ihr was das bedeutet?



  • Hallo,

    der 5.Parameter für select ist ein Zeiger, also muß die Adresse der timeval-struct übergeben werden (beim zweiten Parameter hast du es richtig erkannt):

    timeval wait;
    wait.tv_sec = 0;
    wait.tv_usec = 100;
    
    select(0,&fdSet,NULL,NULL,&wait);
    

    MfG



  • ah geil, danke!

    edit: so, jetzt läuft das auch alles erstmal so wies soll... noch nen bisserl bugs suchen und dann werd ich den nächsten schritt machen.



  • neues Problem...

    ich muss schaun wann es auftritt, also mein programm stürzt manchmal ab... derzeit weiß ich nur, dass es NICHT passiert wenn der client mit dem server verbunden ist und sonst nix passiert...


Anmelden zum Antworten