Guten Abend.
vor lauter Writer, Reader, inputstreams outputstream gebuffert oder nicht raff ich jetzt nichts mehr.
Mein programm funktioniert so ganz gut...
der Client schickt dem Server nen Dateiname mit pfad zB: c:/test.txt
und der server guckt bei sich ob er die datei hat und gibt dann den inhalt der datei aus.
kling einfach ist aber nicht so!!! oder ich habs nicht drauf.
Client:
Server:
vor lauter Writer, Reader, inputstreams outputstream gebuffert oder nicht raff ich jetzt nichts mehr.
Mein programm funktioniert so ganz gut...
der Client schickt dem Server nen Dateiname mit pfad zB: c:/test.txt
und der server guckt bei sich ob er die datei hat und gibt dann den inhalt der datei aus.
kling einfach ist aber nicht so!!! oder ich habs nicht drauf.
Client:
Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import sun.security.krb5.internal.s;
public class Client
{
public static void main(String[] args)
{
String decision = null;
//dient zur späteren abfrage der entscheidung
do //für eingabe fehler (siehe schleifen ende)
{
System.out.println("add zum addieren zweier Zahlen\nmul zu Mutliplizieren zweier zahlen\nsuche zum durchsuchen einer Datei");
System.out.println("Bitte add, mul oder suche eingeben: ");
BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );
//Dekleration von reader vom Typ BufferedReader
try
{
decision=reader.readLine();
//einlesen in decision (die entscheidung des Users
}
catch (IOException e1)
{
e1.printStackTrace();
}
}while(!decision.equals("add") && !decision.equals("mul") && !decision.equals("suche"));
if(!decision.equals("suche"))
{
BufferedReader term1 = new BufferedReader( new InputStreamReader( System.in ) );
BufferedReader term2 = new BufferedReader( new InputStreamReader( System.in ) );
String wert1= null;
String wert2=null;
//Dekleration der einzulesenden werte
try
{
System.out.println("1. Wert eingeben: ");
wert1=term1.readLine();
//wert1 wird eingelsen über BufferReader
}
catch (IOException e1)
{
e1.printStackTrace();
}
try
{
System.out.println("2. Wert eingeben: ");
wert2=term2.readLine();
//wert2 wird eingelsen über BufferReader
}
catch (IOException e1)
{
e1.printStackTrace();
}
int i_wert1, i_wert2;
i_wert1= Integer.parseInt(wert1);
i_wert2= Integer.parseInt(wert2);
//Convert to Integer
try
{
Socket clientSocket = new Socket ("localhost", 4711);
DataOutputStream output = new DataOutputStream ( clientSocket.getOutputStream());
DataInputStream input = new DataInputStream ( clientSocket.getInputStream());
//eröffnen des Sockets und ausgabe und
output.writeUTF(decision);
output.write(i_wert1);
output.write(i_wert2);
//Senden an den Server, der Entscheidung und die Werte
int erg = input.read ();
//einlesen der Rückgabe des Servers
System.out.println("Ergebniss: "+ erg) ;
//ausgabe des Ergebnisses
clientSocket.close();
//schliesen der Verbindung
}
catch (UnknownHostException e)
{
System.out.println("falscher Host"+ e.getMessage());
}
catch (EOFException e)
{
System.out.println("Verbindung wurde beendet!");
}
catch (IOException e)
{
System.out.println(" IO:"+ e.getMessage());
}
}
else
{
Socket clientSocket_aaa;
try {
clientSocket_aaa = new Socket ("localhost", 4711);
DataOutputStream output_aaa = new DataOutputStream ( clientSocket_aaa.getOutputStream());
output_aaa.writeUTF("else");
clientSocket_aaa.close();
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try
{
Socket clientSocket = new Socket ("localhost", 4711);
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
BufferedReader input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
BufferedReader eingabe = new BufferedReader( new InputStreamReader( System.in ) );
String dateiname;
System.out.println("Bitte Vollständigen Pfad eingeben: ");
dateiname = eingabe.readLine();
output.write(dateiname);
output.newLine();
output.flush();
String ausgabe= input.readLine();
while(!(ausgabe.equals("complete")))
{
System.out.println(ausgabe);
ausgabe = input.readLine();
}
}
catch (UnknownHostException e)
{
System.out.println("falscher Host"+ e.getMessage());
}
catch (EOFException e)
{
System.out.println("Verbindung wurde beendet!");
}
catch (IOException e)
{
System.out.println(" IO:"+ e.getMessage());
}
}
}
}
Server:
Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server
{
public static void main(String[] args)
{
try
{
System.out.println("Server ist On");
ServerSocket serverSocket = new ServerSocket (4711);
//Server wird erstellt
Socket clientSocket = serverSocket.accept();
//zum zurücksenden
System.out.println("Verbindung hergestellt");
//Server erstellt und akzeptiert Verbinung
DataOutputStream output = new DataOutputStream ( clientSocket.getOutputStream() );
DataInputStream input = new DataInputStream ( clientSocket.getInputStream() );
String decision = input.readUTF ();
int i_wert1,i_wert2;
// Dekleration der eingabe Variablen
if(decision.equals("add"))
{// wenn Die Entscheidung add war wird folgendes ausgeführt
i_wert1=input.read();
i_wert2=input.read();
output.write(i_wert1+i_wert2);
//einlesen, addition und zurücksenden, der Werte, an den
//Client
}
if(decision.equals("mul"))
{//wenn die Entscheidung mul war wird folgendes ausgeführt
i_wert1=input.read();
i_wert2=input.read();
output.write(i_wert1*i_wert2);
//einlesen, multiplizieren und zurücksenden, der Werte
//an den Client
}
else
{
BufferedWriter outputWr = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
try
{
BufferedReader b_input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String eingabe = b_input.readLine();
File dateiname = new File(eingabe);
BufferedReader dateilese = new BufferedReader(new FileReader(dateiname));
String inhalt = dateilese.readLine();
String neu_inhalt = "";
while((inhalt) != null )
{
neu_inhalt = neu_inhalt + inhalt + '\n';
inhalt = b_input.readLine();
}
outputWr.write(neu_inhalt);
}
catch(FileNotFoundException e) // Wenn Datei nicht existiert!
{
outputWr.write("Die Datei existiert nicht! ");
outputWr.newLine();
outputWr.flush();
System.exit(1); //
}
}
clientSocket.close();
serverSocket.close();
//schließen der Verbindung
}
catch( IOException e)
{
System.out.println(" Listen :"+ e.getMessage());
}
}
}