hi,
folgendes problem bei dem ich einfach auf keine lösung komme.
ich muss mehrere files, in diesem fall z.b. mp3s per tcp und einer tcp connection verschicken. auf der anderen seite, sobald 2 ankommen ein zip file erstellen. dazu verwende ich folgenden code für server und client.
mein problem ist, dass ich die files auf der anderen seite nicht auseinanderhalten kann. sobald ich die dateien so versende schreibt er alle mp3´s in ein grosses mp3 file anstatt in die einzelenen.... wäre klasse wenn mir da wer einen tip geben könnte was ich noch ausprobieren kann.
die connection immer öffnen und schliessen funktioniert( also mehrere tcp streams zu erzeugen sozusagen) zwar aber darf ich nicht als lösung hernehmen...
vielen dank!
folgendes problem bei dem ich einfach auf keine lösung komme.
ich muss mehrere files, in diesem fall z.b. mp3s per tcp und einer tcp connection verschicken. auf der anderen seite, sobald 2 ankommen ein zip file erstellen. dazu verwende ich folgenden code für server und client.
mein problem ist, dass ich die files auf der anderen seite nicht auseinanderhalten kann. sobald ich die dateien so versende schreibt er alle mp3´s in ein grosses mp3 file anstatt in die einzelenen.... wäre klasse wenn mir da wer einen tip geben könnte was ich noch ausprobieren kann.
die connection immer öffnen und schliessen funktioniert( also mehrere tcp streams zu erzeugen sozusagen) zwar aber darf ich nicht als lösung hernehmen...
vielen dank!
Code:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class PerformanceSendReceive {
public static void main(String[] args) {
String serverIp = "localhost";
int port = 1234;
int quantity = 8;
int buffer_size = 1024;
int len = 0;
byte[] buffer = new byte[buffer_size];
for (int i = 1; i <= quantity; i++) {
try {
String filename = i + ".mp3";
InputStream inputStream = null;
Socket socket = new Socket(serverIp, port);
OutputStream outputStream = socket.getOutputStream();
inputStream = new FileInputStream((filename));
while ((len = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}
inputStream.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("fertisch");
}
}
Code:
public class PerformanceReceiveSend {
public static void main(String[] args) {
String server_ip = "localhost";
int port = 1234;
String directory = "/home//Desktop/transfer/";
int buffer_size = 1024;
int quantity = 8;
String filename = "";
byte[] buffer = new byte[buffer_size];
int len = 0;
OutputStream outputStream = null;
int i = 1;
int counter = 1;
try {
while (true) {
filename = i + "mp3";
File file = new File(directory, filename);
ServerSocket serverSocket = new ServerSocket(port);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
System.out.println(" receiving file... " + i + file);
outputStream = new FileOutputStream(file);
while (((len = inputStream.read(buffer)) > 0)) {
if (len == buffer_size)
outputStream.write(buffer, 0, len);
}
i++;
if (i % 2 == 0) {
String command = "zip ";
String zipfilename = "zipfile" + counter + " ";
String mp3_1 = i - 1 + ".mp3 ";
String mp3_2 = i + ".mp3";
String arguments = command+zipfilename+mp3_1+mp3_2;
System.out.println(arguments);
Runtime.getRuntime().exec(arguments);
counter++;
}
socket.close();
serverSocket.close();
inputStream.close();
}
// outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}