Hallo,
ich möchte mich in die Netzwetzwerkkommunikation mittels Sockets in Java einarbeiten. Grundlagen habe ich mir schon in diversen Tutorialen angeeignet.
Nun möchte ich zwei "Programme" habe: Client und Server. Beide sollen miteinander Kommunizieren können! Ein Beispiel für einen Server (mit Threads) habe ich hier im Forum gefunden!
Nun muss ich noch den Clienten hinbekommen! Dieser sollte auch in einem Thread laufen und Nachrichten entgegennehmen und versenden können (an den Server)!
Bis hier hin kein Problem. Ich habe auch schon einen einfachen Clienten geschrieben, der sich nach einer gesendeten Nachricht beendet (s.u.).
Doch nun hab ich keine Ahnung! Ich weiß nicht wie ich weitermachen soll ...
Könnt Ihr mir weiterhelfen?
data89
=====================================
Tserver:
ServerThread:
Client:
ich möchte mich in die Netzwetzwerkkommunikation mittels Sockets in Java einarbeiten. Grundlagen habe ich mir schon in diversen Tutorialen angeeignet.
Nun möchte ich zwei "Programme" habe: Client und Server. Beide sollen miteinander Kommunizieren können! Ein Beispiel für einen Server (mit Threads) habe ich hier im Forum gefunden!
Nun muss ich noch den Clienten hinbekommen! Dieser sollte auch in einem Thread laufen und Nachrichten entgegennehmen und versenden können (an den Server)!
Bis hier hin kein Problem. Ich habe auch schon einen einfachen Clienten geschrieben, der sich nach einer gesendeten Nachricht beendet (s.u.).
Doch nun hab ich keine Ahnung! Ich weiß nicht wie ich weitermachen soll ...
Könnt Ihr mir weiterhelfen?
data89
=====================================
Tserver:
Code:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Tserver {
public static void main(String[] args) {
try {
System.out.println( "[Server]~> Server gestartet!" );
// Server aufbauen
ServerSocket server = new ServerSocket(1234);
Socket s;
while(true) {
// Auf verbindung warten
s = server.accept();
// kommunikation an einen nebenläufigen Thread abgeben
ServerThread t = new ServerThread(s);
t.start();
// und wieder auf neue Verbindungen warten
}
} catch( IOException e ) {
System.out.println( "[Server]~> " + e.toString() );
}
}
}
ServerThread:
Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class ServerThread extends Thread {
private Socket s;
public ServerThread(Socket s) {
this.s = s;
}
public void run() {
try {
// lesen
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
String text = in.readLine();
System.out.println( "[Server]~> " + text );
// schreiben
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
out.write(text.toUpperCase());
out.newLine();
out.flush();
// aufräumen
out.close();
in.close();
} catch( IOException e ) {
System.out.println( "[Server]~> " + e.toString() );
}
}
}
Client:
Code:
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Client {
public Client( Socket socket ) throws IOException {
PrintWriter pw = new PrintWriter( socket.getOutputStream() );
pw.print( "Hallo Welt!" );
pw.flush();
socket.close();
}
public static void main(String[] args) {
try {
Socket ss = new Socket( "127.0.0.1" , 1234 );
Client client = new Client( ss );
} catch( IOException e ) {
System.out.println( "[Client]~> " + e.toString() );
}
}
}