Opa pessoal tudo bom com vocês?
Bem vou falar logo o problema que deu aqui.
Teste um código de envio de arquivos via socket no Windows e funciona. O mesmo código de envio de arquivos no Linux simplesmente aumenta o tamanho do arquivo.
O código para envio é este
import java.net.*;
import java.io.*;
public class ServerMe extends Thread {
ServerSocket servidor = null;
Socket cliente = null;
private final int port = 9999;
private final String filename = "/home/lasol05/Desktop/Ola/Informacao.java";
private void IniciaServer(){
try {
servidor = new ServerSocket(port);
}catch(Exception e)
{ System.out.println(e);
System.exit(0);
}
while (true) {
try {
cliente = servidor.accept();
FileInputStream fin = new FileInputStream (filename);
DataOutputStream out = new DataOutputStream (cliente.getOutputStream());
DataInputStream in = new DataInputStream (fin);
byte buffer[] = new byte[512];
while (in.read(buffer) != -1)
{out.write(buffer,0,buffer.length);
out.flush();
}
}catch (Exception e){
System.out.println(e);
System.exit(0);
} finally {
try {
cliente.close();
}catch (Exception e) {
System.exit(0);
}
}
}
}
public void run(){
IniciaServer();
}
public static void main (String args [])
{
ServerMe servidor = new ServerMe();
servidor.start();
}
}
e o do cliente é este
import java.net.*;
import java.io.*;
public class ClienteMe {
Socket cliente = null;
String filename = "c:/testes/teste_novo.rar";
void IniciaCliente ()
{ try
{
cliente = new Socket("localhost",999);
DataInputStream in = new DataInputStream(cliente.getInputStream());
FileOutputStream fout = new FileOutputStream(filename);
byte[] buffer = new byte[512];
int leitura = in.read(buffer);
while(leitura != -1) {
if(leitura != -2) {
fout.write(buffer,0,leitura);
}
leitura = in.read(buffer);
}
fout.close();
in.close();
cliente.close();
}
catch(Exception e)
{ System.out.println(e);
System.exit(0);
}
}
public static void main (String args [])
{
ClienteMe cliente = new ClienteMe();
try
{ cliente.IniciaCliente();}
catch(Exception e)
{ System.out.println(e);
System.exit(0);
}
}
}