So wie er aktuell programmiert ist macht er alles richtig, aber für unseren zweck wäre es gut wenn er sich nicht beendet
ich hoffe du kannst uns weiterhelfen =)
Beiträge von Cordoba82
-
-
Hallo,
ich bin neu in diesem Forum.
Ich habe Probleme bei der Java Programmierung eines JAVA Server / Clients.Dies wäre Folgendes : Sobald der Client sich mit dem Server verbunden hat und man eine Eingabe tätigt, beendet sich der Client sofort wieder.
Hier nun der Quellcode des Clients:Zitatpackage memoryclient;
import java.net.*;
import java.io.*;public class MemoryClient {
public MemoryClient() {
}
public static void main(String[] args) {
String eingabe="";
try{
Socket socket=new Socket(java.net.InetAddress.getByName("localhost"),6000);
BufferedReader in=new BufferedReader (new InputStreamReader(socket.getInputStream()));
BufferedReader eingabe_konsole=new BufferedReader(new InputStreamReader(System.in));
OutputStream out=socket.getOutputStream();
eingabe=in.readLine();
System.out.println(eingabe);
eingabe=eingabe_konsole.readLine();
out.write(eingabe.getBytes());
out.write('\n');
eingabe=in.readLine();
System.out.println(eingabe);
System.out.println("");
in.close();
out.close();
socket.close();
} catch (Exception e){
System.out.println("Fehler aufgetreten:" +e.toString());
System.exit(1);
}
System.out.println("Client erfolgreich beendet...");
}}
Nun der des Servers:
Zitat
package memoryserver;import java.net.*;
import java.io.*;public class memoryserver {
public memoryserver() {
}
public static void main(String[] args) {
int counter=0;
try{
System.out.println("Warte auf Port 6000 auf Clients");
ServerSocket memoryserver=new ServerSocket(6000);while (true){
Socket memorysocket=memoryserver.accept();
(new server_thread(++counter,memorysocket)).start();}
} catch (IOException e) {System.out.println(e.toString());}
}
}
class server_thread extends Thread
{
private byte name;
private String text,eingabe;
private Socket memorysocket;public server_thread (int name, Socket memorysocket){
this.name=(byte)name;
this.memorysocket=memorysocket;
}@Override
public void run(){
try{System.out.println("\nHabe Verbindung zu Client"+name+" hergestellt!");
OutputStream out= memorysocket.getOutputStream();
BufferedReader in_socket=new BufferedReader (new InputStreamReader(memorysocket.getInputStream()));text="Hallo Client Nr. "+name+": Gib ein Wort ein\n";
out.write(text.getBytes());
eingabe=in_socket.readLine();text="Hallo Client Nr. "+name+": Dein Wort war "+eingabe+". Und tschüss!\n";
out.write(text.getBytes());System.out.println("\n Das Wort von Client "+name+" war"+eingabe);
memorysocket.close();
}catch (IOException e){
System.out.println("Fehler aufgetreten..."+e.toString());
System.exit(1);}
System.out.println("\nVerbindung mit Client "+name+" beendet!");
}
}Es wäre klasse, wenn mir jemand bei meinem Problem helfen kann. Vielen Dank im Voraus