-
- /* Server-"Listen"-Socket initialisieren */
- memset( &my_addr, 0, sizeof( my_addr ));
- my_addr.sin_family = AF_INET;
- my_addr.sin_port = htons( 6668 );
- my_addr.sin_addr.s_addr = htonl( INADDR_ANY );
-
- /* Socket erzeugen, ... */
- my_sock = socket( AF_INET, SOCK_STREAM, 0);
- if( socket < 0 )
- {
- Log( LOG_FATAL, "Can't create socket: %s", strerror( errno ));
- exit( 1 );
- }
-
- /* ... an Port binden ... */
- if( bind( my_sock, (struct sockaddr *)&my_addr, (socklen_t)sizeof( my_addr )) < 0 )
- {
- Log( LOG_FATAL, "Can't bind socket: %s", strerror( errno ));
- exit( 1 );
- }
-
- /* ... und in "listen mode" gehen :-) */
- if( listen( my_sock, 10 ) < 0 )
- {
- Log( LOG_FATAL, "Can't listen on soecket: %s", strerror( errno ));
- exit( 1 );
- }
-
- /* Hauptschleife */
- while( ! do_quit_now )
- {
- /* auf Verbindung warten */
- a_sock_len = sizeof( a_addr );
- memset( &a_addr, 0, a_sock_len );
- a_sock = accept( my_sock, (struct sockaddr *)&a_addr, &a_sock_len );
- if( a_sock < 0 )
- {
- if( errno == EINTR ) continue;
-
- Log( LOG_FATAL, "Can't accept connection: %s", strerror( errno ));
- exit( 1 );
- }
- Log( LOG_INFO, "Accepted connection from %s:%d.", inet_ntoa( a_addr.sin_addr ), ntohs( a_addr.sin_port));
- fd = fdopen( a_sock, "w" );
-
- fputs( "hello world!\n", fd ); fflush( fd );
-
- fclose( fd );
- close( a_sock );
- }
-
- /* Aufraeumen (Sockets etc.!?) */
- close( my_sock );
-
- Log_Exit( );
- return 0;
-} /* main */