Komunikator socket

0

Witam serdecznie. Mam takie pytanko. Piszę sobie program pod linuxa - komunikator.
Mam pewien problem.
PRzesyłanie wiadomości między klientem a serwerem działa prawidłowo. w treści zadania jest umożliwienie wypisania listy zalogowanych uzytkowików.
chce to zrobić na zasadzie że uzyt. wpisuje "/lista" i wysyłane to jest do serwera.

kod który odbiera wiadomość wygląda tak:

 n = read(newsockfd,buffer,255);
     if (n < 0) error("ERROR reading from socket");
     printf("Here is the message: %s\n",buffer); 

i teraz pytanie. jak z tej zmiennej buffer (char buffer[256]) wyłuskać że wpisane jest tam słowo /lista?

0

if(strcmp(buffer, "/lista")!=0){
printf("nie jest rowne");
}

wypisuje że nie jest równe

0

Wyłuskaj pierwszy ciąg znaków aż do pierwszego znaku niedrukowanego, np.:

 sscanf(buffer, "%s", wyraz);

gdzie wyraz jest tablicą typu char. Potem sprawdzasz ten wyraz i jak np. jest równy "/lista", to wykonuje pewien zestaw instrukcji.

if(!strcmp(wyraz, "/lista") 
{
    //buffer zaczyna się od literału "/lista"
}
else if(!strcmp(wyraz, ...
0

działa ! dzięki

1

ale zdajesz sobie sprawę, że nie masz gwarancji, iż wiadomość dostaniesz w jednym kawałku, gdy robisz: n = read(newsockfd,buffer,255);?

1 użytkowników online, w tym zalogowanych: 0, gości: 1