05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.2 Iterative Server 261<br />

27<br />

28 /* Berechnung war nur Zeitvertreib , Ergebnis verwerfen */<br />

29 free( np );<br />

30 return;<br />

31 }<br />

32<br />

33 void handle_client( int client )<br />

34 {<br />

35 int br , bs , num_work , num_bytes;<br />

36 void *rl = NULL;<br />

37 char req[MAXLINE], *st, *data;<br />

38<br />

39 /* Begrüßung an den Client schicken */<br />

40 num_bytes = strlen( HELLO );<br />

41 if( writen( client , HELLO , num_bytes ) != num_bytes )<br />

42 {<br />

43 syslog( LOG_ERR , "writen() failed: %s",<br />

44 strerror( errno ) );<br />

45 return;<br />

46 }<br />

47<br />

48 for(;;)<br />

49 {<br />

50 /* Anfrage des Clients einlesen */<br />

51 if( ( br = readline( client , req, MAXLINE , &rl ) ) < 1 )<br />

52 {<br />

53 /* Bei EOF oder Fehler: Clientbehandlung beenden */<br />

54 break;<br />

55 }<br />

56<br />

57 num_work = num_bytes = 0;<br />

58 if( ( data = strtok_r( req, " ", &st ) ) != NULL )<br />

59 num_work = atoi( data );<br />

60 if( ( data = strtok_r( NULL, " \r\n", &st ) ) != NULL )<br />

61 num_bytes = atoi( data );<br />

62<br />

63 if( ( num_work

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!