F
Fritz
Gast
Hallo zusammen,
ich möchte eine Datei senden und auf einem anderen PC wieder empfangen.
Code zum Senden:
---
---
Code zum Empfangen:
---
---
Der Code ist nur ein Auszug aus einem größeren Projekt.
Problem: Es wird eine Datei gesendet und auch die Datei empfangen - allerdings hat die empfangene Datei immer 0 Byte und ist leer. Woran liegt das?
Danke und Gruß
Fritz
ich möchte eine Datei senden und auf einem anderen PC wieder empfangen.
Code zum Senden:
---
Code:
import java.io.*;
import java.net.*;
public class TCPsend extends Thread {
int port;
InetAddress address;
String file;
public TCPsend(int port, String file, InetAddress address){
this.port = port;
this.file = file;
this.address = address;
}
public void run(){
File sendFile = new File(Klasse.getSharedDir() + file);
// Verzeichnis + Datei ermitteln, klappt auch
try{
FileInputStream fileStream = new FileInputStream(sendFile);
byte[] file = new byte[1000000];
Socket server = new Socket(address, port);
server.setSoLinger(true,1);
server.setTcpNoDelay(false);
server.setSendBufferSize(3932);
BufferedOutputStream out = new BufferedOutputStream(server.getOutputStream());
while(fileStream.available() > 0){
if(fileStream.available() >= file.length){
fileStream.read(file,0,file.length);
} else{
file = new byte[fileStream.available()];
fileStream.read(file,0,file.length);
}
out.write(file,0,file.length);
out.flush();
}
fileStream.close();
out.close();
server.close();
} catch (IOException e) {
System.err.println(e);
}
}
}
Code zum Empfangen:
---
Code:
import java.net.*;
import java.io.*;
public class TCP extends Thread {
ServerSocket tcpSocket;
File saveFile;
TCP(ServerSocket tcpSocket, File saveFile){
this.tcpSocket = tcpSocket;
this.saveFile = saveFile;
}
public void run(){
try{
byte[] fileStream = new byte[1000000];
FileOutputStream fileOutput = new FileOutputStream(saveFile);
tcpSocket.setReceiveBufferSize(4380);
Socket client = tcpSocket.accept();
client.setTcpNoDelay(false);
client.setReceiveBufferSize(4380);
BufferedInputStream input = new BufferedInputStream(client.getInputStream());
while(input.read(fileStream,0,1) != -1){
fileOutput.write(fileStream,0,1);
fileOutput.write(fileStream,0,input.read(fileStream));
}
input.close();
fileOutput.close();
client.close();
tcpSocket.close();
} catch(IOException e){
e.printStackTrace();
}
}
}
Der Code ist nur ein Auszug aus einem größeren Projekt.
Problem: Es wird eine Datei gesendet und auch die Datei empfangen - allerdings hat die empfangene Datei immer 0 Byte und ist leer. Woran liegt das?
Danke und Gruß
Fritz