The Dealer
Power Member
Estou a tentar fazer uma aplicação cliente servidor.
A aplicação cliente liga-se ao servidor através de:
./client ipaddress port filename
A questão é, numa primeira fase eu tinha o programa a funcionar fazendo um input do nome do ficheiro (ver fprintf mais abaixo em comentario), mas agora quero passar o nome do ficheiro como argumento, mas não estou a conseguir fazer... Não me lembro sinceramente como se faz.. Em baixo está a parte do programa que faz isso, ou deveria fazer. Poderiam-me ajudar? Experimentei por
fgets(buffer,255,fp), mas da-me a informação "erro abrindo o ficheiro", algo que nao compreendo pois nem no código está, e se deixar como está agora, o programa nao avança...
A aplicação cliente liga-se ao servidor através de:
./client ipaddress port filename
A questão é, numa primeira fase eu tinha o programa a funcionar fazendo um input do nome do ficheiro (ver fprintf mais abaixo em comentario), mas agora quero passar o nome do ficheiro como argumento, mas não estou a conseguir fazer... Não me lembro sinceramente como se faz.. Em baixo está a parte do programa que faz isso, ou deveria fazer. Poderiam-me ajudar? Experimentei por
fgets(buffer,255,fp), mas da-me a informação "erro abrindo o ficheiro", algo que nao compreendo pois nem no código está, e se deixar como está agora, o programa nao avança...
Código:
if( (fp = fopen(argv[3], "w")) == NULL) // esta é a parte "nova"
{
printf("Erro ao criar o ficheiro\n");
exit(1);
}
// fprintf(stderr,"Introduze nome do ficheiro a transferir: ");
buffer=(char*)malloc(NOMELEN);
bzero(buffer,256); // limpar buffer // está e a "velha"
fgets(buffer,255,stdin); // é este stdin que vai buscar a string do ficheiro para depois criar um novo.
buffer [strlen(buffer)-1] = '\0'; //remover o /n deixado pela funcao fgets
n=sendto(sock,buffer,strlen(buffer),0,(const struct sockaddr *)&server,length);
Última edição: