Hallo.
Ich sitze grade an einem Programm mit dem ich mehrere dateien über einen Socket versenden kann.
Bei kleinen dateien funktioniert der Ansatzt sehr gut nur wenn die Dateien größer werde wird der Lesevorgang vorzeitig abgebrochen.
Server:
Client:
Ich kann nicht nachvollziehen warum das so nicht funktioniert aber vielleicht könnt ihr da weiterhelfen.
JavaJoe
Ich sitze grade an einem Programm mit dem ich mehrere dateien über einen Socket versenden kann.
Bei kleinen dateien funktioniert der Ansatzt sehr gut nur wenn die Dateien größer werde wird der Lesevorgang vorzeitig abgebrochen.
Server:
Code:
try
{
this.fi = new FileInputStream(pfad.replaceFirst(" ",""));
this.writer.write(this.FormatString("FILE "+n));
this.writer.newLine();
this.writer.flush();
OutputStream o = this.mySocket.getOutputStream();
byte[] buff = new byte[16000];
int read;
while((read=fi.read(buff,1,buff.length-1))>0)
{
buff[0] = 1;
o.write(buff,0,read+1);
o.flush();
}
buff[0] = 0;
o.write(buff,0,1);
o.flush();
}catch(Exception x)
{
System.out.println(x);
}
Client:
Code:
try
{
File f = new File("C:\\Downloads\\");
f.mkdirs();
fo = new FileOutputStream("C:\\Downloads\\"+second);
InputStream in = this.myClient.mySocket.getInputStream();
byte[] buff = new byte[16000];
int read=0;
boolean lauff = true;
while(lauff)
{
read = in.read(buff);
if(buff[0] == 1)
{
System.out.println(buff[0]);
fo.write(buff,1,(read-1));
}else{
System.out.println("buff[0]: "+(int)buff[0]);
lauff=false;
}
}
System.out.println("Ende While");
fo.close();
}catch(Exception x)
{
System.out.println("Fehler beim Dateidownload!: "+x);
}
Ich kann nicht nachvollziehen warum das so nicht funktioniert aber vielleicht könnt ihr da weiterhelfen.
JavaJoe