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
2. ClientThread
3. Server
4. Programm starten
Würden uns freuen wenn ihr uns helfen würdets! Dieses Programm ist sehr wichtig für uns!
MFG
Multimediateam
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