Ich möchte 2 Sammlungen miteinander synchronisieren. Wenn sich auf der Serverseite etwas ändert, werden die verbundenen Clients aktualisiert. Ich habe eine ziemlich grundlegende Frage. Muss ich nun mein Java-Projekt kopieren und den Server in dem einen und den Client in dem anderen programmieren? Aber das klingt nach ziemlich viel unnötiger Arbeit. Kann ich das nicht alles in einem Projekt implementieren und dann Server und Client in einem Hauptfenster starten? Brauche ich Fäden? Ich bin irgendwie fest, was der beste Weg hier ist. Vielen Dank im Voraus.Java Server und Client in einem Programm
0
A
Antwort
0
Da codereview meinen Code nicht erlaubt, weil er noch nicht funktioniert, poste ich ihn jetzt hier in der Hoffnung, dass Sie mir helfen können.
public class Server implements Runnable{
private String hostName = "127.0.0.1";
private int portNumber;
private ServerSocket serverSocket;
private Socket clientSocket;
public Server(int port){
this.portNumber = port;
}
public void run(){
String line = "";
PrintWriter out = null;
BufferedReader in = null;
BufferedReader stdIn = null;
try{
this.serverSocket = new ServerSocket(this.portNumber);
}catch (IOException e) {
System.out.println("Could not listen on port");
}
try{
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.out.println("Accept failed");
}
try{
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new PrintWriter(clientSocket.getOutputStream(), true);
}catch (IOException e) {
System.out.println("Read failed");
}
while(true){
try{
line = in.readLine();
}catch (IOException e) {
System.out.println("Read failed");
}
System.out.println("line: "+line);
}
}
protected void finalize(){
//Objects created in run method are finalized when
//program terminates and thread exits
try{
serverSocket.close();
}catch (IOException e) {
System.out.println("Could not close socket");
}
}
}
public class Client implements Runnable{
private String hostName = "127.0.0.1";
private int portNumber = 6602;
private Socket clientSocket = null;
public Client(Socket client){
this.clientSocket = client;
}
public Client(int portNumber, String hostName){
this.portNumber = portNumber;
this.hostName = hostName;
}
public void run(){
String line;
PrintWriter out = null;
BufferedReader in = null;
BufferedReader stdIn = null;
try{
if(clientSocket == null)
this.clientSocket = new Socket(this.hostName, this.portNumber);
out = new PrintWriter(clientSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
stdIn = new BufferedReader(new InputStreamReader(System.in));
out.println("Test string from client");
}catch (IOException e){
System.out.println("in or out failed");
}
}
}
public class DebugServerClient {
public static void testServerClient(){
int port = 6602;
Server srv = new Server(port);
Client clt = new Client(port, "127.0.0.1");
Thread s = new Thread(srv);
s.start();
Thread c = new Thread(clt);
c.start();
}
}
habe ich es jetzt auf diese und es scheint zu funktionieren. Ist das ein guter Weg?
Verwandte Themen
- 1. Java einfaches Client-Server-Programm
- 2. Java Chat-Programm (Server und Client) hängt und nichts passiert,
- 3. Client-Server-Programm in C
- 4. SMTP-Client Java-Programm
- 5. java: HTTP-Sitzung zwischen einem HTTP-Server und einem Client
- 6. Server-Client Java
- 7. Java Client Server
- 8. Golang TCP-Client-Server-Programm
- 9. Udp Server Client Java
- 10. Client-Server-Anwendung java
- 11. Wie die Port-Nummer für den Client in Udp (Client, Server) Programm in Java festlegen?
- 12. C++ Server und Java Client Chat
- 13. Client Server Dateiübertragung Java
- 14. Java TCP Server/Client in Android Studio
- 15. Client-Server zwischen HTML und Java-Anwendung
- 16. Client-Server-Kommunikation - Java-Server
- 17. Client/Server-Modell Java
- 18. Java Networking - Client/Server
- 19. Android-Client und Java-Server TCP-Kommunikation
- 20. Server Client-Programm in C mit Sockets und TCP
- 21. Anschluss Client-Server-Java
- 22. Einfache Socket-Client und Server-Programm funktioniert nicht
- 23. Java-Client und Server-Chat-System
- 24. JAVA TCP-Client-Server-Verbindung
- 25. Java Chat Server Client Problem
- 26. Client-Server-Nachrichtenaustausch - Sockets in Java
- 27. Ausführen von Java-Code auf einem Client von einem Server
- 28. Python UDP Client/Server Programm, Probleme
- 29. java - Client - Server mehrere Nachrichten vom Client
- 30. Java Server JavaScript-Client WebSockets
Sie müssen 'Threading' hier für eine bessere und effizientere Implementierung verwenden. Nun zur eigentlichen Implementierung können Sie entweder Konzepte von [Socket] (https://docs.oracle.com/javase/tutorial/networking/sockets/definition.html) oder [Remote Method Invocation] (https: // docs .oracle.com/javase/tutorial/rmi /). –
Danke. Ich habe versucht, es wie dieses Beispiel zu machen, aber jetzt habe ich das Problem, wie man den Klienten startet? http://www.oracle.com/technetwork/java/socket-140484.html – vogs
Verweisen [this] (https://www.javatpoint.com/socket-programming). –