Hallo zusammen,
habe eine server client Applikation.
nun moechte ich das sich mehrere clients auf dem server arbeiten lassen kann mit Threads hab leider nicht hinbekommen.
Dankbar fuer jede hilfe.
Client
Server
habe eine server client Applikation.
nun moechte ich das sich mehrere clients auf dem server arbeiten lassen kann mit Threads hab leider nicht hinbekommen.
Dankbar fuer jede hilfe.
Client
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package primitiverclient;
import java.io.BufferedReader;
import java.io.IOException;
/**
*
* @author SMU
*/
import java.io.*;
import java.net.Socket;
public class Client {
public static void main (String argv[]){
Client client = new Client();
try{
client.test();
}catch(IOException e){
System.out.println("Fehler");
}
}
void test() throws IOException {
String ip = "localhost";
int port = 4711;
java.net.Socket socket = new Socket (ip,port);
String zuSendeneNAchricht = "Hallo hier Enterprise, would you like to fuck\n";
schreibebnachricht(socket, zuSendeneNAchricht);
String ServerNachricht = lesenachricht(socket);
System.out.println(ServerNachricht);
}
void schreibebnachricht(java.net.Socket socket, String nachricht)throws IOException{
PrintWriter printwriter = new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
);
printwriter.print(nachricht);
printwriter.flush();
}
String lesenachricht(java.net.Socket socket)throws IOException{
BufferedReader BuffReader = new BufferedReader(new java.io.InputStreamReader(socket.getInputStream()));
char[] buffer = new char[200];
int anzahlzeichen = BuffReader.read(buffer,0,200);
String nachricht = new String(buffer,0,anzahlzeichen);
return nachricht;
}
}
Server
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package primitiverserver;
/**
*
* @author SMU
*/
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Server {
java.net.Socket Socket=null;
public static void main (String argv[]){
Server server = new Server();
try{
server.test();
}catch(IOException e){
System.out.println("Fehler");
}
}
void test() throws IOException{
int port =4711;
System.out.println("Server aktiv auf Port" + port);
java.net.ServerSocket ServerSocket = new java.net.ServerSocket(port);
System.out.println("Warte auf Client Anmeldung");
Socket = WarteAufAnmeldung(ServerSocket);
if(Socket.isBound())
{
Thread tse=new Thread(new Runnable(){
public void run()
{
try {
System.out.println("Client hat sich angemeldet");
System.out.println("Nachricht vom Client lesen:");
String nachricht = LeseNachricht(Socket);
System.out.println(nachricht);
System.out.println("Antwort senden");
SchreibeNachricht(Socket, nachricht + "Alles OK\n");
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
tse.start();
}
}
synchronized java.net.Socket WarteAufAnmeldung(java.net.ServerSocket ServerSocket) throws IOException{
java.net.Socket Socket = ServerSocket.accept();
notify();
return Socket;
}
String LeseNachricht(java.net.Socket socket) throws IOException{
BufferedReader objBuffReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
char[] buffer = new char[200];
int AnzahlZeichen = objBuffReader.read(buffer,0,200); //Blockiert bis die Nachricht empfangen ist.
String nachricht = new String(buffer,0,AnzahlZeichen);
return nachricht;
}
void SchreibeNachricht(java.net.Socket socket,String Nachricht)throws IOException{
PrintWriter objPrintWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
objPrintWriter.print(Nachricht);
objPrintWriter.flush();
}
}