[C] Timeout in Funktion connect

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von myth2806, 21. September 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 21. September 2006
    Hi leutz,

    hat ja nicht lang gedauert da habe ich schon wieder nie nächste Frage XD

    also diesmal würde ich gerne wissen wie ich einen Timeout in der Funktion connect der Socket-programierung einbauen kann.

    also er soll einfach versuchen eine verbindung herzustellen und wenn sagen wir mal 10 sekunden um sind soll er abbrechen und das programm fortfahren.

    ich habe per google und andere tutorials nur gefunden das man einen timeout in der funktion select einbauen kann was ja aber nicht das ist was ich brauche *br*

    thx schon mal im vorraus^^


    greez myth
     
  2. 21. September 2006
    AW: (C) Timeout in Funktion connect

    Hi,

    und wieder kann ich dir, glaub ich, helfen

    Das, was du suchst, ist
    Code:
    setsockopt()
    Schaut so aus:
    Code:
    int setsockopt(int socket, int level, int option_name, const void
     *option_value, socklen_t option_len);
    Dazu einfach mal googlen. Findet sich genug

    Ich hoffe, das Ganze gibts auch fuer Windows.

    Bei dem Folgendem bin ich mir nicht sicher:
    Was du dann brauchst ist ein timeval struct. In dem kannst du die Sekunden und Millisekunden bis zum Timeout festlegen.

    Noch was: Das ganze koennte man auch noch Alternativ mit fork() und CreateProcess() loesen. Wenn es das oben genannte nicht gibt oder es nicht geht, dann kannst du ja in deiner Antwort auf die Moeglichkeit hier zurueckgreifen.


    Mfg,

    Kolazomai
     
  3. 21. September 2006
    AW: [C] Timeout in Funktion connect

    ja also ich kann schon mal sagen dass du mir wie immer weitergeholfen hast XD

    allerdings bin ich noch nciht am ziel. ich habe durch ein wenig rumgegoogle das hier gefunden: is this the right way to setsockopt()? - Dev Shed

    dort wird beschrieben wie man den timeout setzten kann:

    Code:
    struct timeval timeout;
    timeout.tv_sec = 30;
    timeout.tv_usec = 0;
    if(setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)) == -1)
    {
     perror("setsockopt (SO_RCVTIMEO)");
     exit(1);
    }
    
    sieht ja ganz schöhn aus aber mein compiler meint er hätte beim passen (sry mein denglisch) von arg 4 of setsockopt einen inkompatiblen zeigertyp.

    *br*

    vlt kannst du oder sonst irgendwer dabei noch einmal helfen XD

    aber big thx schon mal an Kolazomai das hat mich sehr weitergebracht :]

    greez myth
     
  4. 21. September 2006
    AW: [C] Timeout in Funktion connect

    Hi,

    vielleicht hilft ein cast.

    Du programmierst wohl unter Windows ... bei mir gibt es naemlich bei dieser Passage keinen Fehler. Das bringt mich grad auf eine neue Idee: Schau dir mal die Winsock-API ( WS*** ) an. Beim Winsock-Startup kann man EEEEWWIIIIG viele solcher Sachen setzen. Zum Beispiel braucht man sowas, wenn man einen Sniffer basteln will.

    Du musst ja eh den WinSockStartup machen, da kannst dich gleich mal umschaun, was man noch fuer Funktionen dazuhauen kann. Nuetzlich waere auch noch, nach Windows-Sniffer zu googlen und dann mal zu schaun, was fuer Funktionen fuer die Socket-Optionen verwendet werden.

    Hier ( Header ) hab ich mal einen Sniffer programmiert. Den kannst dir mal anschaun und die SocketOptionen (WS*/WA*) wirst sicher schnell finden . Erwarte aber nicht von mir, dass ich dir das erklaere !

    Mfg,

    Kolazomai
     
  5. 22. September 2006
    AW: [C] Timeout in Funktion connect

    ja wunderbar daraus und aus google hab ichs endlich geschafft XD
    vielen dank für die hilfe *10er geb* ^^

    ich werd mich wieder melden wenns wieder mal nicht funktioniert

    greez myth

    //closed
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.