N
Njoerd
Gast
Hallo also ich hab da ein problem bezüglich file transfer zwischen client und server.
Meine verbindung steht, aber wie sende ich jetz am besten datein zwsichen client und server?
hab folgendes ausprobiert:
Am server terminiert mein stream auch(also beim senden) aber leider nicht beim empfangen.
Mir irgendwie auch verständlich, da er ja niemals "-1" empfangen kann und die while schleife somit nicht ausläuft.
Gibts dazu eine löscung oder hat jemand einen anderen vorschlag?
lg + danke für die hilfe
Meine verbindung steht, aber wie sende ich jetz am besten datein zwsichen client und server?
hab folgendes ausprobiert:
Code:
import java.io.*;
import java.net.*;
public class PutGet {
private int port = 4321;
public void get(String strCarrier) throws IOException{
Socket socket = new Socket(InetAddress.getLocalHost(), port);
InputStream is = socket.getInputStream();
FileOutputStream fos=new FileOutputStream(strCarrier);
byte[] buffer=new byte[1024];
int cnt;
while ((cnt=is.read(buffer))!=-1){
fos.write(buffer, 0, cnt);
}
System.err.println();
fos.close();
}
public void put(String strCarrier) throws IOException{
try {
ServerSocket serversocket = new ServerSocket(port);
System.out.println("accepting connections to port " + port);
Socket socket = serversocket.accept();
File fileSend = new File(strCarrier);
OutputStream os=socket.getOutputStream();
FileInputStream fis=new FileInputStream(fileSend);
byte[] buffer=new byte[1024];
int cnt;
while ((cnt=fis.read(buffer))!=-1){
os.write(buffer, 0, cnt);
}
System.err.println();
fis.close();
socket.close();
} catch(Exception e){
e.printStackTrace();
}
}
public static void main (String[] args) {
try {
if (args != null && args.length > 1 && args[1] != null && args[0].equals("put")) {
new PutGet().put(args[1]);
} else if (args[0].equals("get")) {
new PutGet().get(args[1]);
} else {
System.err.println("[put|get] filename");
System.exit(-1);
}
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
System.exit(-1);
}
}
}
Am server terminiert mein stream auch(also beim senden) aber leider nicht beim empfangen.
Mir irgendwie auch verständlich, da er ja niemals "-1" empfangen kann und die while schleife somit nicht ausläuft.
Gibts dazu eine löscung oder hat jemand einen anderen vorschlag?
lg + danke für die hilfe