diff options
Diffstat (limited to 'sem_6/HLIN611/TP_TCP_P2')
| -rw-r--r-- | sem_6/HLIN611/TP_TCP_P2/prog.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/sem_6/HLIN611/TP_TCP_P2/prog.c b/sem_6/HLIN611/TP_TCP_P2/prog.c new file mode 100644 index 0000000..0575631 --- /dev/null +++ b/sem_6/HLIN611/TP_TCP_P2/prog.c @@ -0,0 +1,51 @@ +#include<stdlib.h>
+#include<stdio.h>
+#include<sys/socket.h>
+#include<netdb.h>
+#include<sys/types.h>
+#include<string.h>
+#include<arpa/inet.h>
+#include<errno.h>
+
+int main (int argc, char ** argv){
+ if (argc != 4){
+ printf("Nombre de paramètre incorrect : format : \n %s adresse port fichier",argv[0])
+ }
+ int Socket_envoi= socket(PF_INET,SOCK_STREAM,0);
+ FILE fichier = fopen(argv[3],"r");
+ struct sockaddr_in addresse;
+ printf("Fichier ouvert\n");
+ char buf;
+ if (inet_pton(AF_INET,argv[1],&(adresse.sin_addr))==-1){
+ perror("inet_pton()");
+ exit(errno);
+ }
+ adresse.sin_port = htons(atoi(argv[2]));
+ adresse.sin_family = AF_INET;
+ if(connect(Socket_envoi,(SOCKADDR *) &adresse, sizeof(adresse)) == -1)
+ {
+ perror("connect()");
+ exit(errno);
+ }
+ char tableau[1000];
+ int i =0;
+ if(send(Socket_envoi, argv[3], strlen(argv[3]), 0) < 0)
+ {
+ perror("send()");
+ exit(errno);
+ }
+ while (buf = getc(fichier)!= EOF){
+ tableau[i]=buf;
+ i++;
+ if ( i = 999){
+ if(send(Socket_envoi, tableau, strlen(tableau), 0) < 0)
+ {
+ perror("send()");
+ exit(errno);
+ }
+ i = 0;
+ }
+ }
+
+ return 0;
+}
|
