Bonjour,
J'ai besoin d'implémenter un serveur Java qui reçoie un fichier csv provenant d'un client C qui se connecte à ce serveur à l'aide d'une socket TCP.
J'ai essayé pas mal de solution au niveau de la reception mais sans résultat.
Veuillez me guider svp.
Merci.
Pour savoir sur client pour ceux qui veulent:
avec connect_to_server () :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 void send_file_to_android_server(FILE *file){ int sockfd,n; char *filename = "/mnt/sdcard/pcap-test03-09-2013.csv"; unsigned int file_size = get_file_size(filename); printf("File size %d\n",file_size); printf("--------------------\n"); printf("Connecting to server\n"); sockfd = connect_to_server(); printf("--------------------\n"); printf("prepare file to send it to android server...\n"); if(file != NULL){ bool check_EOF = false; while(check_EOF == false){ if(fgetc(file)== EOF) check_EOF = true; if(send(sockfd,file,file_size,0) < 0) { perror("send "); exit(1); } } fclose(file); /* printf("source %s\n",source);*/ } /* free(source);*/ printf("-----------------------------------\n"); printf("the file was sent successfully\n"); printf("-----------------------------------\n"); close(sockfd); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 int connect_to_server(){ int socketfd; int local_port = 2222; bool connected = false; struct sockaddr_in servaddr; struct timeval tv; double time_in_millisc = (tv.tv_sec) * 1000 + (tv.tv_usec) / 1000; socketfd = socket(AF_INET,SOCK_STREAM,0); if(socketfd == -1) { perror("socket"); return -1; } bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr=inet_addr("127.0.0.1"); servaddr.sin_port=htons(local_port); while(connected == false){ if (connect(socketfd, (const struct sockaddr *)&servaddr, sizeof(struct sockaddr_in)) == 0) { printf("current time %f\n",time_in_millisc); connected = true; } else { strerror(errno); perror("connect"); } } return socketfd; }
Partager