Socket-Problem



  • Hi Leute,
    Probier mich seit kurzem an Socketprogrammierung und habs zumindest schon geschafft eine Verbindung zwischen Server und Client herzustellen. Hab ne Server und ne Client-Anwendung die vorher eine gewisse Anzahl an Arbeitsschritten absolviert. (heißt es ist unterschiedlich welche zuerst fertig wird). Nachdem alle Arbeitsschritte abgearbeitet wurden, soll eine kurze Nachricht 1 ausgetauscht werden um sicher zu stellen, dass beide auf dem gleichen Stand sind. Klappt bei mir natürlich nicht. 🙄
    Hier mal mein Versuch
    Client

    while (ok1 != '1' || ok2 != '1')
    	{
    		send(s,&ok1,strlen(ok1),0);
    		sock=recv(s,&ok2,strlen(ok2),0);
    	}
    

    Server

    while (ok1 != '1' || ok2 != '1')
    	{
            sock=recv(s,&ok2,strlen(ok2),0);
    		send(s,&ok1,strlen(ok1),0);
    	}
    

    Danke schon mal im Voraus.
    lg
    Fischlinger



  • char in;
    char out;
    
    // 1 Zeichen lesen (ggf. mit strlen bestimmen, bei char nicht notwendig/möglich)
    recv(s, &in, 1, 0);
    
    // 1 Zeichen senden (ggf. mit sizeof bestimmen, bei char nicht notwendig/möglich)
    send(s, &out, 1, 0);
    

    Ansonsten ist deine Felherbeschreibung "klappt natürlich nicht" sehr insuffizient!



  • Sorry dass ich meine Frage vielleicht nicht verständlich formuliert habe? Mein Problem ist, dass trotzdem die Daten beim Empfänger nicht ankommen. Wie schaffe ich es, dass der Client immer wieder versucht zu senden oder erst dann sendet wenn der Server bereit ist und umgekehrt?



  • Von welchem Typ sollen ok1/ok2 denn sein?
    Liest du die Warnungen deines Compilers?
    Wenn ja, dann beachte sie, wenn nein dann lese und beachte sie.


Anmelden zum Antworten