wichtig!! Bitte!! (Nachricht von Server an Client senden)

Status
Nicht offen für weitere Antworten.
Grias eich!
Wir haben ein Problem mit den folgenden Programmen! Wir sind Anfänger :wink: !

Wir wollen auf dem Server eine Taste drücken und diese zum Client senden. Auf dem Client wollen wir anhand dieser Taste ein (externes) Programm (wie z.B.: WinZip) starten.

das sind unsere 4 Programmcodes:

1. Client-Programm

Code:
    import java.io.*;
    import java.net.*;

    class Client {
      public static void main(String[] args) throws IOException {
    
    Socket mvSocket = null;
    PrintWriter out = null;
    BufferedReader in = null;
    
    try {
      mvSocket = new Socket("172.16.100.190", 4444);
      //Meine IP-Adresse 172.16.100.153 , ansonst Localhost
      out = new PrintWriter(mvSocket.getOutputStream(), true); //Schreibvariable wird vereinbart
      in = new BufferedReader(new InputStreamReader(mvSocket.getInputStream())); //Lese variable wird vereinbart
    } 
    catch (UnknownHostException e) { //Fehler wird abgefangen!
      System.err.println("Host nicht gefunden!"); //User wird benachrichtigt
      System.exit(1);
    } 
    catch (IOException e) {
      System.err.println("kein Server gefunden, bitte erst server starten"); //User wird benachrichtigt
      System.exit(1);
    }
    
    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
    String fromServer;
    String fromUser;
   
    
    //out.println("Halihalo"); //Es wird eine Nachricht an Server gesendet
    
    while ((fromServer = in.readLine()) != null) { 
      System.out.println("Server: " + fromServer);
    
      
    }
    //Geöffnet Verbindungen werden geschlossen!
    out.close();
    in.close();
    stdIn.close();
    mvSocket.close();
    
  }
}

2. ClientThread

Code:
mport java.io.*;
import java.net.*;

class ClientThread
extends Thread
{
	private int name; //Name wird vereinbart
	private Socket socket; //Socket wird vereinbart
	
	public ClientThread(int name, Socket socket)
	{
		this.name = name;  //Übergebene Werte werden übernommen
		this.socket = socket; //Übergebene Werte werden übernommen
	}
	
	public void run()
	{
	try{
	 PrintWriter out = new PrintWriter(socket.getOutputStream(), true); //Varibalen zum Lesen u. Schreibern werden vereinbart
     BufferedReader in = new BufferedReader(
                                           new InputStreamReader(
                                                                 socket.getInputStream()));
    String inputLine, outputLine;
    
    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
 
	out.println("Connected Sucsessfull!"); //Client erhält Nachricht dass er sich verbinden konnte
	out.println("Grieß di! Sag was: ");  
   
    while ((inputLine = in.readLine()) != null) { //Nachricht von Client wird an Benutzer gesannt.
      System.out.println("Client "+name+ " sagt: "+inputLine);
        if (in.readLine()=="5")
   		 {
    		System.out.println("Hallo");
    	}
      }
  
    socket.close(); //Socket wird geschlossen
	}

    //Fehlermeldung wird abgefangen   
    catch (IOException e) 
  	{
      	System.err.println(e.toString());
    }

 }
}

3. Server
Code:
import java.net.*;
import java.io.*;

class Server {
  public static void main(String[] args) throws IOException {
    
    
 	System.out.println("Verbindung wird aufgebaut..."); //Ausgabe damit Benutzer weis dass Application funktioniert
 
    //ServerSocket serverSocket = null;
    int cnt = 0;
    
    

  try {
  	ServerSocket serv  = new ServerSocket(4444); //Neuer Prot 4444 wird geöffnet
      serv.setSoTimeout( 60000 ); //Timeout wird auf sechs Sekunden gesetzt
      while (true) {
      Socket socket = serv.accept(); //Wenn verbindung möglich und diese Akzeptiert wird 
      (new ClientThread(++cnt, socket)).start(); //wird neuer Thread erzeugt! Übergeben wird die Nummer und der Socket
      }
    } 
    catch (IOException e) {   //Fehler wird aufgefange
      System.err.println("Leider ist der port 4444 belegt :-("); //Benutzer erhält Info
      System.exit(1);
    }
 
  }
}

4. Programm starten

Code:
import java.awt.*;
import java.awt.event.*;

public class Eventhandlingvar1
extends Frame
implements KeyListener
{  
  public static void main(String[] args)
  {
    Eventhandlingvar1 wnd = new Eventhandlingvar1();
  }

  public Eventhandlingvar1()
  {
    super("Nachrichtentransfer");
    setBackground(Color.lightGray);
    setSize(300,200);
    setLocation(200,100);
    setVisible(true);
    addKeyListener(this);
  }
  
  public void paint(Graphics g)
  {
    g.setFont(new Font("Serif",Font.PLAIN,18));
    g.drawString("F1 für taschenrechner",10,50);
  }

  public void keyPressed(KeyEvent event)
  {
    if (event.getKeyCode() == KeyEvent.VK_F1)  {
      try { 
          Runtime.getRuntime().exec("C:\\WINNT\\system32\\calc.exe");
    } catch (Exception e) 
          { 
            System.err.println(e.toString()); 
          }  
  }
}

  public void keyReleased(KeyEvent event)
  {
  }

  public void keyTyped(KeyEvent event)
  {
  }

}

Würden uns freuen wenn ihr uns helfen würdets! Dieses Programm ist sehr wichtig für uns!

MFG
Multimediateam
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kr0e MTU Größe wichtig? Netzwerkprogrammierung 3
A Wichtig für einen Chat? Netzwerkprogrammierung 4
B JKS erstellen bitte um hilfe Netzwerkprogrammierung 1
N Client - Server kurze Hilfe bitte Netzwerkprogrammierung 2
D Netzwerk Game, bitte hilfe. Netzwerkprogrammierung 2
thE_29 Vor dem ersten Posten bitte lesen! Netzwerkprogrammierung 0
E Java RMI - bitte ne kleine Einstiegshilfe Netzwerkprogrammierung 4
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
L Socket Wie kann ich checken ob ein User eine Nachricht per Outputstream an den Server gesendet hat? Netzwerkprogrammierung 1
T Socket jamod WriteMultipleRegistersRequest ist keine ModBus/TCP Nachricht Netzwerkprogrammierung 1
Sogomn IRC-Nachricht Regex Netzwerkprogrammierung 0
H Socket Java | Server sendet Nachricht nur wenn vorher eine JOptionPane-Nachricht ausgegeben wurde. Netzwerkprogrammierung 2
M Nur die erste Nachricht kommt beim Server an Netzwerkprogrammierung 11
I Server schickt eine Nachricht an Broadcast Netzwerkprogrammierung 2
J Nachricht kommt erst nach beendigung der Anwendung an Netzwerkprogrammierung 4
G Nachricht an Server unverändert Netzwerkprogrammierung 2
H Neues NIO problem nachricht an alle clients Netzwerkprogrammierung 3
B Nachricht über Sockets kommt nicht an Netzwerkprogrammierung 8
G Nachricht an mehrere Clients schicken Netzwerkprogrammierung 10
A JavaMail Problem - Nachricht wird nicht versendet ? Netzwerkprogrammierung 9
H SOAP-Nachricht mit Java Netzwerkprogrammierung 8
G Nachricht von server an alle clients senden Netzwerkprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben