Pessoal boa noite,
Estou com um pequeno problema para tranferir arquivos via socket e gostaria da ajuda de vocês.
A transferência de arquivo está ocorrendo, mas o arquivo chega vazio no Cliente.
Estou transferindo do Server para o Client o arquivo teste.txt.
O código é o seguinte:
Cliente:
import java.io.;
import java.net.;
public class Client {
static public void main(String []args){
try {
Socket skt = new Socket("127.0.0.1",7000);
DataOutputStream out = new DataOutputStream (new FileOutputStream("D:\\teste.txt"));
DataInputStream in = new DataInputStream(skt.getInputStream());
byte bufferCli[];
bufferCli = new byte[in.available()];
while (in.read()!=-1)
out.write(bufferCli);
}catch(Exception err){
}
}
}
Server:
import java.io.;
import java.net.;
public class Server {
public static void main(String[] args) {
ServerSocket serv;
Socket skt = null;
try{
serv = new ServerSocket(7000);
skt = serv.accept();
File arquivo = new File("C:\\teste.txt");
DataInputStream in = new DataInputStream(new FileInputStream(arquivo));
DataOutputStream out = new DataOutputStream(skt.getOutputStream());
byte[] cache = new byte[10240];
int size = 0;
while ((size = in.read(cache)) > -1) {
out.write(cache, 0, size);
}
skt.close();
//in.close();
//out.close();
//skt.close();
//Trata possíveis exceções
}catch(IOException e){
System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket." + e.getMessage());
}finally{
}
}
}
