Professional Documents
Culture Documents
8 Lotoserveur
8 Lotoserveur
8 Lotoserveur
1 #i n c l u d e <s t d i o . h>
2 #i n c l u d e < s t d l i b . h>
3 #i n c l u d e <u n i s t d . h>
4 #i n c l u d e < s t r i n g s . h>
5 #i n c l u d e <s t r i n g . h>
6 #i n c l u d e <s y s / t y p e s . h>
7 #i n c l u d e <s y s / s o c k e t . h>
8 #i n c l u d e <n e t i n e t / i n . h>
9 #i n c l u d e <netdb . h>
10 #i n c l u d e < s t d l i b . h>
11 #i n c l u d e <time . h>
12
13
14 i n t main ( i n t argc , c h a r c o n s t ∗ argv [ ] )
15 {
16
17 i n t sd ;
18 s t r u c t sockaddr_in s a ; /∗ S t r u c t u r e I n t e r n e t sockaddr_in ∗/
19 s t r u c t hostent ∗ hptr ; /∗ I n f o s s u r l e s e r v e u r ∗/ ;
20 int port ; /∗ Numero de p o r t du s e r v e u r ∗/
21
22 i n t newsd ; /∗ Id de l a s o c k e t e n t r a n t e ∗/
23 s t r u c t sockaddr_in newsa ; /∗ sockaddr_in de l a c o n n e c t i o n e n t r a n t e ∗/
24 i n t newsalength ;
25
51
48 // L i a i s o n de l a s o c k e t l ’ a d r e s s e e t au p o r t
49 i f ( bind ( sd , ( s t r u c t s o c k a d d r ∗ ) &sa , s i z e o f ( s a ) ) < 0 ) {
50 p e r r o r ( " E r r e u r l o r s de l a l i a i s o n " ) ;
51 exit (1) ;
52 }
53
60 int i = 0;
61
62 char b u f f e r [ 1 0 0 ] ;
63 int longueur ;
64
65
66 while (1) {
67 /∗ n e w s a l e n g t h c o n t i e n t l a t a i l l e t h e o r i q u e de l a s t r u c t u r e
newsa ∗/
68 n e w s a l e n g t h = s i z e o f ( newsa ) ;
69 i f ( ( newsd = a c c e p t ( sd , ( s t r u c t s o c k a d d r ∗ ) &newsa , &n e w s a l e n g t h ) )
< 0 ) {
70 p r i n t f ( " E r r e u r s u r a c c e p t \n" ) ;
71 exit (1) ;
72 }
73
74 /∗ Compteur nombre c o n n e x i o n s ∗/
75 i ++;
76 p r i n t f ( " Connection No %d s u r l e p o r t %d . . . \ n" , i , n t o h s ( newsa .
sin_port ) ) ;
77
78 int j ;
79 s r a n d ( time (NULL) ) ;
80 f o r ( j =0; j <6; j ++){
81 l o n g u e u r = s p r i n t f ( b u f f e r , "%d " , rand ( ) %49) ;
82 w r i t e ( newsd , b u f f e r , l o n g u e u r ) ;
83 }
84 c l o s e ( newsd ) ;
85 }
86
87 // Fermer l a s o c k e t s e r v e u r ( c e code ne s e r a j a m a i s a t t e i n t )
88 c l o s e ( sd ) ;
89
90 return 0;
91 }
re223/lotoserveur.c
52