Listen Socket



  • Hallo,

    will nen Server auf dem Port 1080 rennen haben, der wenn sich ein Client zu ihm connected, solange dieser Client connected ist alle anderen Client abweißt.

    Also eine Warteschlange von 0.

    Hab das Problem, das die Client nicht warten dürfen. Also entweder ich kann mich gleich um den CLient kümmern oder gar nicht.

    Ist sowas möglich ?
    btw. unter linux, suse 8.2

    mfg

    /* So schauts momentan aus */
    int opt=1;
    sock = socket(AF_INET,SOCK_STREAM,0);
    setsockopt(3, SOL_SOCKET, SO_REUSEADDR,&opt,sizeof(opt));
    bind(sock, (struct sockaddr 😉 &svr, sizeof(svr));
    listen(sock, 1);
    /* Es können sich aber beliebig viele Clients an diesen Socket connecten */



  • Hallo

    Im Builder gibts die Klassen TClientSocket/TServerSocket, mit denen u.a. auch solche Beschränkungen leicht umzusetzen sind.

    bis bald
    akari



  • btw. unter linux, suse 8.2

    mit dem C++Builder??



  • Vielleicht hat er ja Kylix?



  • Joo, aber ist doch schon lange nicht mehr "State of the art"



  • Christian211 schrieb:

    btw. unter linux, suse 8.2

    mit dem C++Builder??

    ja

    TClientSocket/TServerSocket hm ...

    machen die das nicht auch mit "nur" mit listen ? wieso sollte dieses listen besser sein als meines ?

    und ... gibts keine moglichkeit ohne diese Klassen. Hab jetzt schon alles durchimplementiert die Serverklasse hat 2000 Codezeilen. Wär ein bisserl aufwändig das jetzt alles auf TServerSocket umzustellen.



  • Hallo

    klar kannst du auch die WinAPI-Funktioenn benutzen, um direkt die Winsockets zu bearbeiten. Nur dann must du dich im WinAPI-Forum umschauen.

    bis bald
    akari



  • akari schrieb:

    klar kannst du auch die WinAPI-Funktioenn benutzen, um direkt die Winsockets zu bearbeiten.

    Macht sich unter Linux eher schlecht. 😉
    Oder dachtest du an WINE?

    squall:
    Wenn du auf den Einsatz der Borland-spezifischen Klassen verzichten willst, dann passt deine Frage besser in's C/C++- oder in's Linux-Forum hier.
    Da dieser Thread schon so verwurstelt ist lohnt sich ein Verschieben nicht mehr, du solltest also ggf. im entsprechenden Forum die Frage noch einmal stellen.



  • Okay, mach ich. danke


Anmelden zum Antworten