Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [szbylica@torus zad7]$ cat gnk.c gns.c
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <stdio.h>
- #include <sys/un.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <signal.h>
- #include <arpa/inet.h>
- #define N 30
- #define port 9000
- static void blad(char opis[]){
- printf("%s/n",opis);
- exit(EXIT_FAILURE);
- }
- void wyjscie(){
- printf("Koniec klienta!\n");
- exit(0);
- }
- int main(){
- int id_gniazda;
- int serwer_dlugosc;
- int nazwa_gniazda;
- char znak[N];
- signal(SIGINT,wyjscie);
- struct sockaddr_in adres_serwera;
- adres_serwera.sin_addr.s_addr = inet_addr("127.0.0.1");
- adres_serwera.sin_family= AF_INET;
- adres_serwera.sin_port = htons(port);
- // strcpy(adres_serwera.sun_path,"gniazdo_serwera");
- id_gniazda=socket(AF_INET,SOCK_STREAM,0);
- if (id_gniazda==-1)
- blad("Nie moglem utworzyc gniazda.\n");
- else
- printf("Gniazdo zostalo utworzone %d.\n",id_gniazda);
- if (connect(id_gniazda,(struct sockaddr *)&adres_serwera,sizeof(adres_serwera))==-1)
- blad("Nie moge nadac nazwy gniazdu.\n");
- else
- printf("Gniazdo otrzymalo swoja nazwe.\n");
- printf("Podaj slowo!\n");
- scanf("%s",znak);
- write(id_gniazda,znak,N);
- read(id_gniazda,znak,N);
- printf("Otrzymano slowo : %s\n\n",znak);
- close(id_gniazda);
- exit(0);
- }
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <stdio.h>
- #include <sys/un.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <signal.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #define N 30
- #define port 9000
- static void blad(char opis[]){
- printf("%s/n",opis);
- exit(EXIT_FAILURE);
- }
- void wyjscie(){
- printf("Koniec pracy serwera!\n");
- exit(0);
- }
- void *odbierz( int id_gniazda_k ){
- char znak[N];
- int i,len;
- read(id_gniazda_k,znak,N);
- printf("Otrzymano wyraz : %s\n\n",znak);
- len = strlen(znak);
- for( i = 0 ; i < len ; i ++ ){
- znak[i] = toupper(znak[i]);
- }
- write(id_gniazda_k,znak,N);
- close(id_gniazda_k);
- pthread_exit(0);
- }
- int main(){
- int id_gniazda;
- int id_gniazda_k;
- int klient_dlugosc;
- int nazwa_gniazda;
- int i,zwr;
- signal(SIGINT,wyjscie);
- struct sockaddr_in adres_serwera;
- struct sockaddr_in adres_klienta;
- adres_serwera.sin_family= AF_INET;
- adres_serwera.sin_addr.s_addr = INADDR_ANY;
- adres_serwera.sin_port = htons(port);
- id_gniazda=socket(AF_INET,SOCK_STREAM,0);
- // strcpy(adres_serwera.sin_path,"gniazdo_serwera");
- if (id_gniazda==-1)
- blad("Nie moglem utworzyc gniazda.\n");
- else
- printf("Gniazdo zostalo utworzone %d.\n",id_gniazda);
- if (bind( id_gniazda,(struct sockaddr *)&adres_serwera,sizeof(adres_serwera)) == -1 )
- blad("Nie moge nadac nazwy gniazdu.\n");
- else
- printf("Gniazdo otrzymalo swoja nazwe.\n");
- while(1){
- if (listen(id_gniazda,5)==-1)
- blad("Nie moge utworzy kolejki.\n");
- else
- printf("Kolejka zostala utworzona.\n");
- klient_dlugosc = sizeof(adres_klienta);
- printf("Oczekuje na klienta...\n");
- id_gniazda_k = accept(id_gniazda,(struct sockaddr *)&adres_klienta,&klient_dlugosc);
- if( id_gniazda < 0 ){
- printf("Blad!\n");
- exit(-1);
- }
- pthread_t tid;
- zwr = pthread_create(&tid,NULL,odbierz,id_gniazda_k);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement