Hallo,
ich weiß dass hier überall Schnipsel hilfreicher Informationen herumliegen, aber diese alle zu MEINER Lösung zusammenzusuchen würde viel Zeit beanspruchen und daher wollte ich hier einmal meinen Quelltext für einen Clienten als auch einen Server darstellen und die Frage stellen, wie ich in der Server Applikation die Datei
"test.tst"
die ja vom Clienten kommen soll auf die Festplatte schreiben lassen kann? Wohin genau auf der Festplatte, ist erstmal egal. Mir geht es rein um's Prinzip. Welchen Input / OutputStream muss ich verwenden ... ich habe leider nicht so viel Ahnung von Streams und habe das meiste selber nur so zusammengesucht.
^---- Das ist der Client
^--- Und das ist mein Server !
Ich hoffe man kann mir hier ein wenig helfen .... wäre dafür wirklich sehr dankbar.
Rapthor
ich weiß dass hier überall Schnipsel hilfreicher Informationen herumliegen, aber diese alle zu MEINER Lösung zusammenzusuchen würde viel Zeit beanspruchen und daher wollte ich hier einmal meinen Quelltext für einen Clienten als auch einen Server darstellen und die Frage stellen, wie ich in der Server Applikation die Datei
"test.tst"
die ja vom Clienten kommen soll auf die Festplatte schreiben lassen kann? Wohin genau auf der Festplatte, ist erstmal egal. Mir geht es rein um's Prinzip. Welchen Input / OutputStream muss ich verwenden ... ich habe leider nicht so viel Ahnung von Streams und habe das meiste selber nur so zusammengesucht.
Code:
import java.io.*;
import java.net.*;
class DateiTransferClient {
ObjectOutputStream ausgang;
ObjectInputStream eingang;
public void runClient() {
Socket clientSocket;
try {
System.out.println("Versuche Verbindung aufzubauen ...");
// Wo ist der Server ?
clientSocket = new Socket(
InetAddress.getByName("127.0.0.1"), 2000);
ausgang = new ObjectOutputStream(
clientSocket.getOutputStream() );
ausgang.flush();
eingang = new ObjectInputStream(
clientSocket.getInputStream() );
}
catch (ConnectException ce) {
System.out.println("Verbindung fehlgeschlagen ! Firewall ? Server nicht aktiv ?\n");
//ce.printStackTrace();
}
catch (EOFException eof) {
System.out.println("EOF Fehler !\n");
}
catch (IOException io) {
System.out.println("I/O Fehler !\n");
//io.printStackTrace();
}
try {
this.sendData( new File("c:test.tst") );
}
catch (NullPointerException np) {
System.out.println("NullPointer irgendwas .... wegen der Datei\n");
}
}
private void sendData( File datei )
{
try {
// Füllen des Buffers
ausgang.writeObject(datei);
// Losschicken der Daten im Buffer
ausgang.flush();
System.out.println( "\nDatei geschickt !");
}
catch ( IOException cnfex ) {
System.out.println(
"\nFehler beim Senden der Datei !" );
}
}
public static void main(String[] args) {
DateiTransferClient app = new DateiTransferClient();
app.runClient();
}
}
^---- Das ist der Client
Code:
import java.io.*;
import java.net.*;
class DateiTransferServer {
ObjectOutputStream ausgang;
ObjectInputStream eingang;
public void runServer() {
ServerSocket serverSocket;
Socket verbindungsSocket;
try {
serverSocket = new ServerSocket( 2000 , 100 );
while ( true ) {
System.out.println( "Warte auf Verbindung ..." );
verbindungsSocket = serverSocket.accept();
System.out.println( "Verbindung mit " +
verbindungsSocket.getInetAddress().getHostName() );
ausgang = new ObjectOutputStream(
verbindungsSocket.getOutputStream() );
ausgang.flush();
eingang = new ObjectInputStream(
verbindungsSocket.getInputStream() );
System.out.println( "Empfange Daten ...." );
/*
do {
try {
// Hier soll die Datei geschrieben werden,
// die vom Client empfangen wird (test.tst) !!
}
catch ( ClassNotFoundException cnfex ) {
System.out.println("Unbekannter Objekttyp !");
}
} while ( /* !Abbruchbedingung */ );
*/
// Verbindung beenden
System.out.println( "Verbindung wird unterbrochen ..." );
ausgang.close();
eingang.close();
verbindungsSocket.close();
System.out.println( "BEENDET !" );
}
}
catch ( EOFException eof ) {
System.out.println( "Client hat die Verbindung unterbrochen !" );
}
catch ( IOException io ) {
System.out.println( "IO Fehler !" );
io.printStackTrace();
}
}
public static void main(String[] args) {
DateiTransferServer app = new DateiTransferServer();
app.runServer();
}
}
^--- Und das ist mein Server !
Ich hoffe man kann mir hier ein wenig helfen .... wäre dafür wirklich sehr dankbar.
Rapthor