Envoi d'un fichier csv d'un client TCP en C vers un serveur Java
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:
Code:
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);
} |
avec connect_to_server () :
Code:
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;
} |