/* Socket streznik v UNIX domeni */ #include #include #include #include int main( argc, argv ) int argc; char **argv; { int SocketNumber, NewSocketNumber; int Len, Nodjemalcev = 0; struct sockaddr_un ServerAddress, ClientAddress; char Message[512]; int Nread; if( (SocketNumber = socket( AF_UNIX, SOCK_STREAM, 0 )) == -1){ printf("%s: napaka socket\n", argv[0]); exit(1); } ServerAddress.sun_family = AF_UNIX; strcpy( ServerAddress.sun_path, "sockname"); unlink(ServerAddress.sun_path); /* za vsak slucaj */ if(bind( SocketNumber, &ServerAddress, sizeof(ServerAddress)) == -1){ printf("%s: napaka bind\n", argv[0]); unlink(ServerAddress.sun_path); exit(1); } if( listen( SocketNumber, 5 ) == -1){ printf("%s: napaka listen\n", argv[0]); exit(1); } while( Nodjemalcev++ < 3){ /* po treh vzpostavitvah zveze koncam */ Len = 128; if( (NewSocketNumber=accept( SocketNumber, &ClientAddress, &Len)) >= 0){ if( fork( ) == 0 ){ while( (Nread = read(NewSocketNumber, Message, 100)) > 0){ Message[ Nread ] = 0; printf("Sprejel: %s\n", Message ); } close( NewSocketNumber ); exit( 0 ); } } else{ printf("%s: napaka accept\n", argv[0] ); exit( 2 ); } } unlink(ServerAddress.sun_path); exit(0); }