Hallo miteinander,
Das sind meine 3 Klassen.
Kurzzusammenfassung (was versuche ich):
1.Nur ein Objekt von Auto von Auto darf bestehen.
2. Client sendet einen String zum Server.
3. Dieser String soll in das Objekt a sowie dessen Attribut text, geschrieben und ausgedruckt werden.
4. Wenn der String des Clients sich ändert soll auch das Attribut text sich ändern. (Im Grunde genommen ein dynamisches Attribut.
Dafür müsste der Server auch wahrscheinlich 24/7 laufen. Nur soweit bin ich noch nicht, weiß auch nicht wie ich das machen soll.
Kann mir jemand sagen wie ich korrekt in "text" schreiben kann über die klasse server?
Ich hatte in letzter zeit mehr mit C zu tun. Ich hab von Java ihrgenwie kein peil mehr
und server und client ist auch für mich neu.
Das sind meine 3 Klassen.
Java:
import java.io.IOException;
public class Auto {
public String text = "hallo 1";
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public static void main(String[] args) throws InterruptedException, IOException {
Auto a = new Auto();
System.out.println(a.text);
}
}
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
Auto a = new Auto();
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(5555);//Serversocket für Server
System.out.println("Server gestartet!");
Socket client = server.accept();//Client erzeugen wenn verbindung besteht
//Streams
//Daten zum Client; writer "sendet"
OutputStream out = client.getOutputStream();
PrintWriter writer = new PrintWriter(out);
//Daten vom Client; Buffer "empfängt"
InputStream in = client.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
//---------------------------------------------------
String text = null;
while((text = reader.readLine()) != null){ //liest Zeile aus
System.out.println("Empfangen vom Client:" + text);
}
a.setText(text);
writer.close();
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
try {
Socket client = new Socket("localhost",5555);
System.out.println("Client gestarted");
//Streams
//Daten zum Server; writer "sendet"
OutputStream out = client.getOutputStream();
PrintWriter writer = new PrintWriter(out);
//Daten vom Server; Buffer "empfängt"
InputStream in = client.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
//---------------------------------------------------
writer.write("Hallo Server!");
writer.flush();//stream wird aktualisiert
reader.close();
writer.close();//beim schließen wird eigentlich der Stream gesendet
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Kurzzusammenfassung (was versuche ich):
1.Nur ein Objekt von Auto von Auto darf bestehen.
2. Client sendet einen String zum Server.
3. Dieser String soll in das Objekt a sowie dessen Attribut text, geschrieben und ausgedruckt werden.
4. Wenn der String des Clients sich ändert soll auch das Attribut text sich ändern. (Im Grunde genommen ein dynamisches Attribut.
Dafür müsste der Server auch wahrscheinlich 24/7 laufen. Nur soweit bin ich noch nicht, weiß auch nicht wie ich das machen soll.
Kann mir jemand sagen wie ich korrekt in "text" schreiben kann über die klasse server?
Ich hatte in letzter zeit mehr mit C zu tun. Ich hab von Java ihrgenwie kein peil mehr
und server und client ist auch für mich neu.