Esempio n. 1
0
int enviaNomeComando(conexao *conn,char *comando){
	byte *dados;
	size_t tamanho, restantes;
	Pacote p;

	if (!existeArquivo(comando))
		return 0;
	
	tamanho = strlen(comando);
	dados = (byte *)comando;
	
	if(tamanho <= MAX_TAM_DADOS){
		if (strstr (comando, "get ") != NULL)	
			criaPacote(&p,tamanho,G,dados);
		if (strstr (comando, "put ") != NULL)	
			criaPacote(&p,tamanho,P,dados);
		if (strstr (comando, "cd ") != NULL)	
			criaPacote(&p,tamanho,C,dados);
		if (strstr (comando, "ls") != NULL)	
			//criaPacote(&p,tamanho,L,(byte*)'0');
			criaPacote(&p,tamanho,L,dados);

	}else{
		printf ("Tamanho do comando muito grande!!\n");
		return 0;	
	}
		
	if (enviaPacote(conn,&p) == 0)
		return -1;
	
	return 1;
}
Esempio n. 2
0
int requisita(conexao *conn) { //prompt do cliente
	int i, num_vets;
	char *comando, c;
	Pacote p;
	int loop =1;
	comando=(char *)malloc(TAM_VET*sizeof(char));

    while(loop){
        printf("ftp >> ");

        num_vets=1;//numero de alocacoes		

        c=getchar();
        while(isspace(c)) //elimina espaços a esquerda do comando
            c=getchar();

        i=0;
        while(c != '\n'){//le comando
            if(i >= TAM_VET * num_vets){
                //realoca string se o comando for maior q TAM_VET
                num_vets++;
                comando=(char*)realloc(comando,num_vets * TAM_VET * sizeof(char));
            }
            comando[i]=c;
            i++;
            c=getchar();
        }
        comando[i]='\0';

        if (strstr(comando,"exit") != NULL){
            loop=0;
            criaPacote(&p,0,S,NULL);
            enviaPacote (conn, &p);
        }
        else {
            if((strstr (comando, "lcd ") != NULL) || (strstr (comando, "lls") != NULL)){
                executaComandoLocal(comando);
            }
            else if ((strstr (comando, "get ") != NULL) || (strstr (comando, "put ") != NULL) || (strstr (comando, "ls") != NULL) || (strstr (comando, "cd ") != NULL)) {
                executaComandoRemoto(conn,comando);
                zeraSequencia();
            }
            else
                printf ("Comando nao disponivel!!\n");
        }
    }	

	return 1;
}
int main(){
int i=0,contador=0;
PACOTE *PE,*aux;
PACOTE *saida;
srand(time(NULL));

saida=NULL;

PE=NULL;

while(contador<4){

i=rand()%3;

PE=inserePacoteLista(PE,criaPacote(i));

//saida=escalonador(PE[0]);

//printf("\n%d\n",PE->enderecoIP);
//puts(PE->protocolo);

contador++;

}


aux=PE;

printf("conferindo se ouve insercao dos pacotes na lista de Entrada\n");

while(aux!=NULL){

printf("\n%d\n",aux->enderecoIP);
puts(aux->protocolo);
aux=aux->prox;
}
printf("\n\\-----------------------------------------------\\");


printf("\n\n");

printf("pacote processado e recebido na saida \n");

saida=escalonador(PE);
printf("saida\n");
printf("%d\n",saida->enderecoIP);
puts(saida->protocolo);

printf("\n\\-----------------------------------------------\\\n");


printf("Lista de Entrada depois da remoção do pacote \n");
aux=PE;

while(aux!=NULL){

printf("\n%d\n",aux->enderecoIP);
puts(aux->protocolo);
aux=aux->prox;
}

printf("\n\\-----------------------------------------------\\");
getchar();

 return 0;




}