ajgon Opublikowano 3 Lutego 2004 Zgłoś Opublikowano 3 Lutego 2004 Witam... zaczalem sie bawic w programowanie sieciowe, czego efektym jest taki programik: #include <stdio.h>#include <strings.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/socket.h>#include <netinet/in.h>blad(const char *cojest) { perror(cojest); exit(EXIT_FAILURE);}main() { int s, z, dl, c; struct sockaddr_in adr_serw; struct sockaddr_in adr_klnt; char *buf, key; s = socket(PF_INET, SOCK_STREAM, 0); if ( s == -1 ) blad("socket"); memset(&adr_serw, 0, sizeof adr_serw); adr_serw.sin_family = PF_INET; adr_serw.sin_port = htons(9000); adr_serw.sin_addr.s_addr = htonl(INADDR_ANY); dl = sizeof adr_serw; z = bind(s, (struct sockaddr *)&adr_serw, dl); if ( z == -1 ) blad("bind"); z = listen(s, 10); if ( z == -1 ) blad("listen"); for (;;) { dl = sizeof adr_klnt; c = accept(s, (struct sockaddr_in *)&adr_klnt, &dl); if ( c == -1 ) blad("accept"); z = write(c, "n [1] Wyszukiwanie podstawowen", 30); z = write(c, " [2] Wyszukiwanie zaawansowanen", 31); z = write(c, " [inny] Wyjscie z systemun ? ", 29); z = read(c, key, 1); if (key == "1") z = write(c, "blah1", 5); if ( z == -1 ) blad("write"); close(c); } return 0;} I moje pytanie jest nastepujace - czemu do diaska nie dziala mi ten "if" przy koncu (if (key == 1)....). Czy typ zmiennej jest zly, czy moze musze cos zmienic, czy mam zamykac socketa... nie wiem... mam nadzieje ze ktos mnie oswieci/poda poprawiony kod. Bede naprawde zobowiazany. Pozdrawiam Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 3 Lutego 2004 Zgłoś Opublikowano 3 Lutego 2004 Sprobuj tak: if (key == '1'){ z = write(c, "blah1", 5); } Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...