this.in = new ObjectInputStream(this.socket.getInputStream());
this.out = new DataOutputStream(this.socket.getOutputStream());
this.outObject = new ObjectOutputStream(this.socket.getOutputStream());
Вам не нужен DataOutputStream здесь, и вы должны создать ObjectOutputStream до ObjectInputStream, в противном случае вы получите тупик.
this.res = this.in.readObject().toString();//I read the client order(GET home page, next page...)
Bzzt.Если следующий объект является строкой, эта строка кода будет работать, но она должна была использовать приведение (String), а не toString ().Если следующий объект не a String, вы только что испортили его во что-то еще.
this.pack = new byte[size_array];
this.pack = clean_array();//I replace my variable by an array filled with zeros
Бессмысленно.(а) он уже был полон нулей, и (б) если вы настаиваете на втором назначении, в чем смысл первого назначения?
Остальная часть вашего кода является многословным и, вероятно, ошибочным способомотправки файла в сокет.Вот простой способ:
FileInputStream fin = new FileInputStream(file);
int count;
byte[] buffer = new byte[8192];
while ((count = fin.read(buffer)) > 0)
out.write(buffer, 0, count); // here 'out' is the socket output stream or whatever you want to wrap around it.