Ich befasse mich seit Kurzem mit Socketprogrammierung. Habe einen einfachen Server und einen Client geschrieben.
Der Server erhält vom Client zwei Zahlen (5 und 10), rechnet sie zusammen und gibt über die Konsole das Ergebnis (15) aus.
Server:
Client:
Ich möchte das Ganze jetzt mit einer GUI versehen. Mit Swing kenne ich mich zwar aus, trotzdem gelingt es mir hier nicht.
Wenn ich eine weitere Main-Klasse erstelle, sie von JFrame ableite und den Client vom JPanel, müsste ich ja den Client auf die Main-Klasse adden können.
Es erscheint zwar ein Fenster, es ist aber völlig leer...
Kann mir bitte jemand helfen?
Der Server erhält vom Client zwei Zahlen (5 und 10), rechnet sie zusammen und gibt über die Konsole das Ergebnis (15) aus.
Server:
Java:
package server;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class Server extends JFrame{
ServerSocket server = new ServerSocket(1234);
public Server() throws IOException {
super("Server");
while (true) {
Socket client = server.accept();
InputStream input = client.getInputStream();
OutputStream output = client.getOutputStream();
int zahl1 = input.read();
int zahl2 = input.read();
output.write(zahl1 + zahl2);
output.flush();
input.close();
output.close();
}
}
public static void main(String[] args) {
try {
Server server = new Server();
} catch (IOException ioe) {
System.out.println(ioe);
System.exit(1);
}
}
}
Client:
Java:
package client;
import java.net.*;
import java.io.*;
import java.awt.*;
import javax.swing.*;
public class Client{
String ip = "localhost";
int port = 1234;
JTextField tfNachricht = new JTextField(20);
public Client() throws IOException {
this.setLayout(new GridLayout(1, 3));
this.add(tfNachricht);
Socket server = new Socket("localhost", port);
InputStream input = server.getInputStream();
OutputStream output = server.getOutputStream();
output.write(5);
output.write(10);
output.flush();
System.out.println(input.read());
server.close();
input.close();
output.close();
}
public static void main(String[] args) {
try {
Client Client = new Client();
} catch (IOException ioe) {
System.out.println(ioe);
System.exit(1);
}
}
}
Ich möchte das Ganze jetzt mit einer GUI versehen. Mit Swing kenne ich mich zwar aus, trotzdem gelingt es mir hier nicht.
Wenn ich eine weitere Main-Klasse erstelle, sie von JFrame ableite und den Client vom JPanel, müsste ich ja den Client auf die Main-Klasse adden können.
Java:
package client;
import java.io.*;
import javax.swing.*;
public class Main extends JFrame {
public Main() {
super("Client");
this.setVisible(true);
this.setSize(500, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
try {
Client client = new Client();
this.add(client);
System.out.println("ja");
} catch (IOException ioe) {
System.out.println(ioe);
}
}
public static void main(String[] args) {
Main main = new Main();
}
}
Es erscheint zwar ein Fenster, es ist aber völlig leer...
Kann mir bitte jemand helfen?