Tenho que elaborar uma aplicação cliente-servidor baseado no protocolo TCP para realizar upload e download de arquivos.
O cliente ao se conectar deverá receber uma listagem dos arquivos disponíveis para download.
A aplicação deverá permitir que o cliente selecione a operação: UPLOAD ou DOWNLOAD;
Para UPLOAD, o cliente deverá fornecer o diretório e o nome do arquivo a ser enviado ao servidor. O servidor deverá receber o arquivo e gravá-lo em disco, numa pasta específica.
Para DOWNLOAD, o cliente deverá indicar o nome do arquivo, e o servidor irá enviá-lo ao cliente, que o gravará em uma pasta específica.
Alguem tem esse codigo fonte ou pode me indicar um site para fazer essas pesquisas.
atenciosamente,
BoBSurf.
obs: Se alguem ja tiver desenvolvido esse aplicativo pode me enviar para meu e-mail:[email removido]
Isso é uma aplicação típica de FTP, portanto a maneira mais segura e eficiente de fazer isso é usar um servidor SFTP ou SCP. Procure por SFTP e SCP, que irá achar muita coisa boa, testada e de graça. Não reinvente a roda.
jromulomenezes
Mas tem que ser utilizando:
Sockets
FileInputStream
FileOutputStream
Thread
Consegui akgumas coissas da comunicação dos sockets esta ok! agora preciso de exemplo para os outros.
T
thingol
Você quer resolver uma lição de casa, é isso? Mandem uma MP ou um email para ele então.
De modo geral, transmissão e recepção de arquivos é mais chato que parece (é por isso que ele quer as coisas prontas )
jromulomenezes
Sim, preciso muito pois não estou conseguindo rodar se quiser mando as partes que ja consegui.
T
thingol
A primeira coisa é definir um protocolo sobre o TCP/IP.
Por acaso você pode explicar como é que você fez o seu protocolo?
Por exemplo, como é que você envia os nomes dos arquivos, ou como você envia o conteúdo dos arquivos?
publicstaticvoidmain(String[]args){Scanners=newScanner(System.in);StringtextoEntrada;intporta;System.out.println("Criando socket servidor");System.out.print("Digite o numero da porta:");porta=s.nextInt();ServerSocketservidorSocket=null;SocketclienteSocket=null;try{servidorSocket=newServerSocket(porta);System.out.println("Servidor no AR!!!");clienteSocket=servidorSocket.accept();System.out.println("Conexao com Cliente aceita!!!");DataOutputStreamsaida=newDataOutputStream(clienteSocket.getOutputStream());DataInputStreamentrada=newDataInputStream(clienteSocket.getInputStream());textoEntrada=entrada.readLine();System.out.println("Mensagem do cliente: "+textoEntrada);saida.writeBytes(textoEntrada.toUpperCase()+'\n');}catch(IOExceptione){System.out.print("Erro: "+e.getMessage());}finally{try{clienteSocket.close();servidorSocket.close();}catch(IOExceptione){}}}
publicstaticvoidmain(String[]args){Scanners=newScanner(System.in);StringtextoEntrada,textoSaida,host;intporta;System.out.println("Criando socket cliente");System.out.print("Digite o nome do host:");host=s.next();System.out.print("Digite o numero da porta:");porta=s.nextInt();SocketclienteSocket=null;try{clienteSocket=newSocket(host,porta);DataOutputStreamsaida=newDataOutputStream(clienteSocket.getOutputStream());DataInputStreamentrada=newDataInputStream(clienteSocket.getInputStream());System.out.print("Digite sua mensagem: ");textoSaida=s.next();saida.writeBytes(textoSaida+'\n');textoEntrada=entrada.readLine();System.out.println("Servidor: "+textoEntrada);}catch(IOExceptione){System.out.print("Erro: "+e.getMessage());}finally{try{clienteSocket.close();}catch(IOExceptione){}}}