Skocz do zawartości
ajgon

Linux i sockety...

Rekomendowane odpowiedzi

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...