strings erkennen?
-
Hi,
ich hab da so ein kleines Problem..Ich sende strings über die Winsockets von meinem Client zum Server, so nun soll der Server wenn z.B. hallo gesendet wird, ne Ausgabe machen z.B. Es wurde Hallo gesendet.
Ich hab es so versuchtrecvText = sc->SocketRecv(0); //printf("%s",recvText); if(strcmp(recvText, "blubb") == 0) { printf("Es wurde Blubb gesendet\n"); } else if(strcmp(recvText, "da") == 0) { printf("Es wurde da gesendet\n"); }
nur das funktioniert nicht 100% wenn ich als erstes da sende, dann springt der auch in die zweite if abfrage, nur wenn ich einmal blubb sende, dann erkennt der Server nichtmehr, ob ich da sende. Genauergesagt, er macht keine Ausgabe mehr, so als wenn der dann in der zweiten if hängen bleibt.
Könnt ihr mir helfen? Danke
-
wenn du die abfragen in eine schleife einbaust könnte es funktionieren.
denn wenn du 1. "da" sendest speichert er dir das in die variable vergleicht "da" in der ersten if-abfrage, wenn nicht gefunden geht er zum nächsten if (else if!). das passiert beim ersten mal. aber wo ist das programm wenn ein zweiter string gesendet wird? nein, nichtmehr oben wo über recv der text in die variable gespeichert wird.
also -> schleifehoffentlich hab ichs net verpeilt und da ist doch eine schleife
-
hab da jetzt ne schleifen och eingebaut
while(rc1!=SOCKET_ERROR) { while(rc1!=SOCKET_ERROR) { recvText = sc->SocketRecv(0); //printf("%s",recvText); if(strcmp(recvText, "blubb") == 0) { printf("Es wurde Blubb gesendet\n"); } else if(strcmp(recvText, "da") == 0) { printf("Es wurde da gesendet\n"); } } }
vorher sah es so aus:
while(rc1!=SOCKET_ERROR) { recvText = sc->SocketRecv(0); //printf("%s",recvText); if(strcmp(recvText, "blubb") == 0) { printf("Es wurde Blubb gesendet\n"); } else if(strcmp(recvText, "da") == 0) { printf("Es wurde da gesendet\n"); } }
aber es geht noch net
-
hmm dann war die schleife nicht notwendig. ist ja schon eine da.
-
vielleicht is die info in recvText nicht korrekt. initialisier oder flush die mal vor jedem reinspeichern.