Académique Documents
Professionnel Documents
Culture Documents
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
11 #d e f i n e FTPPORT 13 /∗ Numero du p o r t du s e r v e u r daytime ∗/
12
13 i n t main ( argc , argv )
14 int argc ;
15 c h a r ∗ argv [ ] ;
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
21 char ∗ se rveur ; /∗ Nom du s e r v e u r d i s t a n t ∗/
22 c h a r buf [ 2 5 6 ] ; /∗ B u f f e r ∗/
23 int n , i ;
24
25
41
48
49 /∗ I n i t i a l i s a t i o n du numero du p o r t ∗/
50 s a . s i n _ p o r t = h t o n s (FTPPORT) ;
51
52 /∗ C r e a t i o n de l a s o c k e t TCP ∗/
53 i f ( ( sd = s o c k e t (AF_INET, SOCK_DGRAM, 0 ) ) < 0 ) { // AF_INET −> IPv4 | |
SOCK_STREAM −> TCP e t SOCK_DGRAM −> UDP
54 p r i n t f ( " Probleme l o r s de l a c r e a t i o n de s o c k e t \n" ) ;
55 exit (1) ;
56 }
57
58 /∗ E t a b l i s s e m e n t de l a c o n n e x i o n avec l e s e r v e u r daytime ∗/
59 i f ( ( c o n n e c t ( 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 ) {
60 p r i n t f ( " Probleme de c o n n e x i o n avec l e s e r v e u r \n" ) ;
61 exit (1) ;
62 }
63
64
65 unsigned i n t s = s i z e o f ( sa ) ;
66 /∗ Envoi de l a commande f t p v e r s s e r v e u r daytime ∗/
67 s e n d t o ( sd , buf , s i z e o f ( buf ) , 0 , ( s t r u c t s o c k a d d r ∗ ) &sa , s ) ;
68
69 /∗ L e c t u r e de l a r e p o n s e du s e r v e u r daytime ∗/
70 n = r e c v f r o m ( sd , buf , s i z e o f ( buf ) , 0 , ( s t r u c t s o c k a d d r ∗ ) &sa ,& s ) ;
71 w r i t e ( 1 , buf , n ) ;
72
73
74 /∗ Fermeture de l a s o c k e t ∗/
75 c l o s e ( sd ) ;
76
77 exit (0) ;
78 }
re223/mydateUDP.c
42