Vergleich von zwar Chars
-
Hallo,
ich habe folgendes Problem:
Ich habe mittels Winsock eine Netzwerkverbidnung aufgebaut die auch in beide Richtungen einwandfrei funktioniert.Wenn ich nun vom Clienten den Text "test" an den Server sende, soll dieser eigentlich den Wert "0" zurücksenden, ansonsten "1".
Dazu habe ich folgenden Code:
char buf[8192]; //[...] //Empfang der Daten des Clienten rc=recv(connectedSocket,buf,256,0); printf("Client schrieb: %s\n",buf); send (connectedSocket,CheckCommand(buf),1,0); //[...] char *CheckCommand(char test[8192]) { if (test == "test") { return "0"; } return "1"; }Jetzt stelle ich fest, wenn ich per Debugger durchsteppe, dass bei der Zeile der if Abfrage die Variabel "test" den Wert "test" hat - jedoch wird die if Abfrage als False angesehen und "1" zurückgegeben...
Nun meine Fragen:
Woran liegt das? Kann man Chars nicht (so leicht) vergleichen?
Wie kann ich nun Prüfen ob der gesendete Text den Wert "test" enthält?
Was für alternative Dateitypen gibt es mit denen ein solcher Vergleich möglich ist?
Was ist allgemein an dem Code verbesserungfähig (sicher einiges, obwohl es nur wenige Zeilen sind)Bitte nicht zu hart sein, bin Anfänger im Bereich der Socketprogrammierung, habe sonst immer fertige Komponenten benutzt...
-
Klar kann man char's mit == vergleichen, aber du arbeitest mit char* und da vergleicht == die Adressen, auf die die Pointer zeigen. Um den Inhalt hinter diesen zu vergleichen, verwendet man strcmp() (oder std::string).