Klient-Server Pytanko czy tutaj jest komunikacja

0

Witam wszystkich napisałem program i nie jestem pewny czy tutaj jest zastosowana komunikacja klient serwer. Niby klasa główna komunikuje się z klasą serwer a serwer oblicza i zwraca wartość ale nie jestem pewny. Więc jest czy nie jest to komunikacja klient-serwer?

KOD ZAŁĄCZAM I PLIK CAŁY DZIAŁAJĄCY PROGRAM SSSSS.rar

KLASA GŁÓWNA

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class Calc extends JFrame implements ActionListener {
    JButton button1,button2,button3,button4,button5;
    static JTextField pole1;
    static JTextField pole2;
    static JTextField pole3;
    JLabel label1,label2,label3;
    JMenuItem menuItemAdd, menuItemSub, menuItemMul, menuItemDiv, menuItemZamknij;
    public Calc()
    {
        setBounds(300,300,300,200);
        setTitle("Kalkulator");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panelK = new JPanel(null);
        JToolBar pasek = new JToolBar();

        JMenuBar jmenubar = new JMenuBar();
        jmenubar.setBounds(0,0,300,25);
        panelK.add(jmenubar);

        JMenu jMenuPlik = new JMenu("Plik");
        JMenu jMenuEdycja = new JMenu("Edycja");
        jmenubar.add(jMenuPlik);
        jmenubar.add(jMenuEdycja);

        Image imageIconFrame = new ImageIcon(getClass().getClassLoader().getResource("calculator-.png")).getImage();
        setIconImage(imageIconFrame);

        ImageIcon imageIconAdd = new ImageIcon(getClass().getClassLoader().getResource("add.png"));
        ImageIcon imageIconSub = new ImageIcon(getClass().getClassLoader().getResource("sub.png"));
        ImageIcon imageIconMul = new ImageIcon(getClass().getClassLoader().getResource("mul.png"));
        ImageIcon imageIconDiv = new ImageIcon(getClass().getClassLoader().getResource("div.png"));
        ImageIcon imageIconCE = new ImageIcon(getClass().getClassLoader().getResource("CE.png"));


        menuItemZamknij = new JMenuItem("Zamknij");
        menuItemAdd = new JMenuItem("Add",imageIconAdd);
        menuItemSub = new JMenuItem("Sub",imageIconSub);
        menuItemMul = new JMenuItem("Mul",imageIconMul);
        menuItemDiv = new JMenuItem("Div",imageIconDiv);
        menuItemZamknij.addActionListener(this);
        menuItemAdd.addActionListener(this);
        menuItemSub.addActionListener(this);
        menuItemMul.addActionListener(this);
        menuItemDiv.addActionListener(this);

        jMenuPlik.add(menuItemZamknij);
        jMenuEdycja.add(menuItemAdd);
        jMenuEdycja.add(menuItemSub);
        jMenuEdycja.add(menuItemMul);
        jMenuEdycja.add(menuItemDiv);

        label1 = new JLabel("=");
        label1.setBounds(165,80,20,20);
        panelK.add(label1);

        label2 = new JLabel("KALKULATOR");
        label2.setForeground(Color.RED);
        label2.setBounds(100,45,100,25);
        panelK.add(label2);

        pole1 = new JTextField("0");
        pole1.setBounds(50,80,35,25);
        panelK.add(pole1);
        pole2 = new JTextField("0");
        pole2.setBounds(100,80,35,25);
        panelK.add(pole2);
        pole3 = new JTextField("0");
        pole3.setBounds(200,80,65,25);
        panelK.add(pole3);



        button1 = new JButton(imageIconAdd);
        button1.addActionListener(this);
        pasek.add(button1);

        button2 = new JButton(imageIconSub);
        button2.addActionListener(this);
        pasek.add(button2);

        button3 = new JButton(imageIconMul);
        button3.addActionListener(this);
        pasek.add(button3);

        button4 = new JButton(imageIconDiv);
        button4.addActionListener(this);
        pasek.add(button4);

        button5 = new JButton(imageIconCE);
        button5.addActionListener(this);
        pasek.add(button5);

        panelK.setBackground(Color.BLACK);
        panelK.add(pasek);
        pasek.setBounds(0,25,300,25);
        setContentPane(panelK);
        setVisible(true);





    }


    public static void main(String[] args) {

        new Calc();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object object = e.getSource();
        String a;
        String b;

        a=pole1.getText();
        b=pole2.getText();

        int num1 = Integer.parseInt(a);
        int num2 = Integer.parseInt(b);


        if (object == button1|| object==menuItemAdd) {
            int w = Serwer.Add(num1,num2);
            String wynik = ""+w;
            pole3.setText(wynik);
        }else if (object==button2 || object==menuItemSub){
            int w = Serwer.Sub(num1,num2);
            String wynik = ""+w;
            pole3.setText(wynik);
        }else if (object==button3 || object==menuItemMul){
            int w = Serwer.Mul(num1,num2);
            String wynik = ""+w;
            pole3.setText(wynik);
        }else if (object==button4 || object==menuItemDiv){
            if(num1 == 0 || num2 == 0){
                JOptionPane.showMessageDialog(Calc.this,"Nie dziel przez 0 !!!");
            }
            float w = Serwer.Div(num1,num2);
            Math.round(w);
            String wynik = ""+w;

            pole3.setText(wynik);

        }else if (object==button5){
            pole1.setText("0");
            pole2.setText("0");
            pole3.setText("0");
        }else if (object==menuItemZamknij){
            System.exit(0);
        }
    }
}

KLASA SERWER


public class Serwer {

    static int Add(int a, int b) {
        return a+b;
    }

    static int Sub(int a, int b) {
        return a-b;
    }

    static int Mul(int a, int b) {
        return a*b;
    }

    static float Div(float a, float b) { return a/b; }


}
2

"Napisałem" czy "kupiłem" ?

Określenie tego architekturą client-server jest **bardzo **naciągane.
"Komunikacja" praktycznie zawsze się rozumie "komunikacja przez sieć".

W bardzo dalekim sensie można tu dopatrywać wzorca strategia, czy podobnego (bardzo mgliście, gdyby np implementowała jakiś intefejs), ale te statyczne metody świadczą, ze autor nie rozumie, o co chodzi.

W OOP najważniejsze jest "bycie czymś", klasa ze statycznymi metodami to nawet nie "klasa robocza" (cokolwiek by to miało znaczyć), to zbiór metod, ona nie "jest" niczym, co można nazwać

0

Zrobiłem tak ```package com.company;
import javax.swing.;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Calc extends JFrame implements ActionListener {
JButton button1,button2,button3,button4,button5;
static JTextField pole1;
static JTextField pole2;
static JTextField pole3;
JLabel label1,label2,label3;
JMenuItem menuItemAdd, menuItemSub, menuItemMul, menuItemDiv, menuItemZamknij;
public Calc()
{
setBounds(300,300,300,200);
setTitle("Kalkulator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panelK = new JPanel(null);
JToolBar pasek = new JToolBar();

    JMenuBar jmenubar = new JMenuBar();
    jmenubar.setBounds(0,0,300,25);
    panelK.add(jmenubar);

    JMenu jMenuPlik = new JMenu("Plik");
    JMenu jMenuEdycja = new JMenu("Edycja");
    jmenubar.add(jMenuPlik);
    jmenubar.add(jMenuEdycja);

    Image imageIconFrame = new ImageIcon(getClass().getClassLoader().getResource("calculator-.png")).getImage();
    setIconImage(imageIconFrame);

    ImageIcon imageIconAdd = new ImageIcon(getClass().getClassLoader().getResource("add.png"));
    ImageIcon imageIconSub = new ImageIcon(getClass().getClassLoader().getResource("sub.png"));
    ImageIcon imageIconMul = new ImageIcon(getClass().getClassLoader().getResource("mul.png"));
    ImageIcon imageIconDiv = new ImageIcon(getClass().getClassLoader().getResource("div.png"));
    ImageIcon imageIconCE = new ImageIcon(getClass().getClassLoader().getResource("CE.png"));


    menuItemZamknij = new JMenuItem("Zamknij");
    menuItemAdd = new JMenuItem("Add",imageIconAdd);
    menuItemSub = new JMenuItem("Sub",imageIconSub);
    menuItemMul = new JMenuItem("Mul",imageIconMul);
    menuItemDiv = new JMenuItem("Div",imageIconDiv);
    menuItemZamknij.addActionListener(this);
    menuItemAdd.addActionListener(this);
    menuItemSub.addActionListener(this);
    menuItemMul.addActionListener(this);
    menuItemDiv.addActionListener(this);

    jMenuPlik.add(menuItemZamknij);
    jMenuEdycja.add(menuItemAdd);
    jMenuEdycja.add(menuItemSub);
    jMenuEdycja.add(menuItemMul);
    jMenuEdycja.add(menuItemDiv);

    label1 = new JLabel("=");
    label1.setBounds(165,80,20,20);
    panelK.add(label1);

    label2 = new JLabel("KALKULATOR");
    label2.setForeground(Color.RED);
    label2.setBounds(100,45,100,25);
    panelK.add(label2);

    pole1 = new JTextField("0");
    pole1.setBounds(50,80,35,25);
    panelK.add(pole1);
    pole2 = new JTextField("0");
    pole2.setBounds(100,80,35,25);
    panelK.add(pole2);
    pole3 = new JTextField("0");
    pole3.setBounds(200,80,65,25);
    panelK.add(pole3);



    button1 = new JButton(imageIconAdd);
    button1.addActionListener(this);
    pasek.add(button1);

    button2 = new JButton(imageIconSub);
    button2.addActionListener(this);
    pasek.add(button2);

    button3 = new JButton(imageIconMul);
    button3.addActionListener(this);
    pasek.add(button3);

    button4 = new JButton(imageIconDiv);
    button4.addActionListener(this);
    pasek.add(button4);

    button5 = new JButton(imageIconCE);
    button5.addActionListener(this);
    pasek.add(button5);

    panelK.setBackground(Color.BLACK);
    panelK.add(pasek);
    pasek.setBounds(0,25,300,25);
    setContentPane(panelK);
    setVisible(true);





}


public static void main(String[] args) {

    new Calc();
}

@Override
public void actionPerformed(ActionEvent e) {
    Object object = e.getSource();
    String a;
    String b;

    a=pole1.getText();
    b=pole2.getText();

    int num1 = Integer.parseInt(a);
    int num2 = Integer.parseInt(b);

    Serwer licz = new Serwer();



    if (object == button1|| object==menuItemAdd) {

        int w = licz.Add(num1,num2);

        //int w = Serwer.Add(num1,num2);
        String wynik = ""+w;
        pole3.setText(wynik);
    }else if (object==button2 || object==menuItemSub){

        int w = licz.Sub(num1,num2);
        //int w = Serwer.Sub(num1,num2);
        String wynik = ""+w;
        pole3.setText(wynik);
    }else if (object==button3 || object==menuItemMul){
        int w = licz.Mul(num1,num2);

        //int w = Serwer.Mul(num1,num2);
        String wynik = ""+w;
        pole3.setText(wynik);
    }else if (object==button4 || object==menuItemDiv){
        if(num1 == 0 || num2 == 0){
            JOptionPane.showMessageDialog(Calc.this,"Nie dziel przez 0 !!!");
        }

        float w = licz.Div(num1,num2);
        //float w = Serwer.Div(num1,num2);
        Math.round(w);
        String wynik = ""+w;

        pole3.setText(wynik);

    }else if (object==button5){
        pole1.setText("0");
        pole2.setText("0");
        pole3.setText("0");
    }else if (object==menuItemZamknij){
        System.exit(0);
    }
}

}

I te metody w klasie serwer są publiczne
0

Teraz to wygląda tak SS.rar

1

Tak napisałem , a mógłbyś mi doradzić co zmienić żeby to miało jakiś sens? — Prank866 54 minuty temu

Komunikacja

Przez socket, prosty, lub na jakiś wyższych protokołach jak HTTP+REST.
Przynajmniej 1x w tygodniu tu w Javie jest takie zadanie

Na razie to bijesz pianę.
Może ktos inny uzna to co prezentujesz za komunikację (???), ale ja nie

0

Ostatnia sprawa już wszystko działa mam komunikacje tylko po prostu po wykonaniu 1 działania serwer kończy prace i trzeba go znowu włączać jak by zrobić żeby działał ciągle w pętli?Kalk.rar

MACIE KOD

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.*;

public class Calc extends JFrame implements ActionListener {
    JButton button1,button2,button3,button4,button5,button6,button7,button8;
    static JTextField pole1;
    static JTextField pole2;
    static JTextField pole3;
    JLabel label1,label2,label3;
    JMenuItem menuItemAdd, menuItemSub, menuItemMul, menuItemDiv, menuItemZamknij,menuItemUP,menuItemSQRT,menuItemFact;
    public Calc()
    {
        setBounds(300,300,300,200);
        setTitle("Kalkulator");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panelK = new JPanel(null);
        JToolBar pasek = new JToolBar();

        JMenuBar jmenubar = new JMenuBar();
        jmenubar.setBounds(0,0,300,25);
        panelK.add(jmenubar);

        JMenu jMenuPlik = new JMenu("Plik");
        JMenu jMenuEdycja = new JMenu("Edycja");
        jmenubar.add(jMenuPlik);
        jmenubar.add(jMenuEdycja);

        Image imageIconFrame = new ImageIcon(getClass().getClassLoader().getResource("calculator-.png")).getImage();
        setIconImage(imageIconFrame);

        ImageIcon imageIconAdd = new ImageIcon(getClass().getClassLoader().getResource("add.png"));
        ImageIcon imageIconSub = new ImageIcon(getClass().getClassLoader().getResource("sub.png"));
        ImageIcon imageIconMul = new ImageIcon(getClass().getClassLoader().getResource("mul.png"));
        ImageIcon imageIconDiv = new ImageIcon(getClass().getClassLoader().getResource("div.png"));
        ImageIcon imageIconCE = new ImageIcon(getClass().getClassLoader().getResource("CE.png"));
        ImageIcon imageIconUP = new ImageIcon(getClass().getClassLoader().getResource("up.png"));
        ImageIcon imageIconSQRT = new ImageIcon(getClass().getClassLoader().getResource("sqrt.png"));
        ImageIcon imageIconFact = new ImageIcon(getClass().getClassLoader().getResource("fact.png"));

        menuItemZamknij = new JMenuItem("Zamknij");
        menuItemAdd = new JMenuItem("Add",imageIconAdd);
        menuItemSub = new JMenuItem("Sub",imageIconSub);
        menuItemMul = new JMenuItem("Mul",imageIconMul);
        menuItemDiv = new JMenuItem("Div",imageIconDiv);
        menuItemUP = new JMenuItem("UP",imageIconUP);
        menuItemSQRT = new JMenuItem("SQRT",imageIconSQRT);
        menuItemFact = new JMenuItem("FACT",imageIconFact);

        menuItemZamknij.addActionListener(this);
        menuItemAdd.addActionListener(this);
        menuItemSub.addActionListener(this);
        menuItemMul.addActionListener(this);
        menuItemDiv.addActionListener(this);
        menuItemUP.addActionListener(this);
        menuItemSQRT.addActionListener(this);
        menuItemFact.addActionListener(this);

        jMenuPlik.add(menuItemZamknij);
        jMenuEdycja.add(menuItemAdd);
        jMenuEdycja.add(menuItemSub);
        jMenuEdycja.add(menuItemMul);
        jMenuEdycja.add(menuItemDiv);
        jMenuEdycja.add(menuItemUP);
        jMenuEdycja.add(menuItemSQRT);
        jMenuEdycja.add(menuItemFact);

        label1 = new JLabel("=");
        label1.setBounds(165,80,20,20);
        panelK.add(label1);

        label2 = new JLabel("KALKULATOR");
        label2.setForeground(Color.RED);
        label2.setBounds(100,45,100,25);
        panelK.add(label2);

        pole1 = new JTextField("0");
        pole1.setBounds(50,80,35,25);
        panelK.add(pole1);
        pole2 = new JTextField("0");
        pole2.setBounds(100,80,35,25);
        panelK.add(pole2);
        pole3 = new JTextField("0");
        pole3.setBounds(200,80,65,25);
        panelK.add(pole3);



        button1 = new JButton(imageIconAdd);
        button1.addActionListener(this);
        pasek.add(button1);

        button2 = new JButton(imageIconSub);
        button2.addActionListener(this);
        pasek.add(button2);

        button3 = new JButton(imageIconMul);
        button3.addActionListener(this);
        pasek.add(button3);

        button4 = new JButton(imageIconDiv);
        button4.addActionListener(this);
        pasek.add(button4);

        button6 = new JButton(imageIconUP);
        button6.addActionListener(this);
        pasek.add(button6);

        button7 = new JButton(imageIconSQRT);
        button7.addActionListener(this);
        pasek.add(button7);

        button8 = new JButton(imageIconFact);
        button8.addActionListener(this);
        pasek.add(button8);

        button5 = new JButton(imageIconCE);
        button5.addActionListener(this);
        pasek.add(button5);

        panelK.setBackground(Color.BLACK);
        panelK.add(pasek);
        pasek.setBounds(0,25,300,25);
        setContentPane(panelK);
        setVisible(true);
    }


    public static void main(String[] args) { new Calc(); }

    @Override
    public void actionPerformed(ActionEvent e) {

        Object object = e.getSource();
        String a;
        String b;

        a=pole1.getText();
        b=pole2.getText();

        int num1 = Integer.parseInt(a);
        int num2 = Integer.parseInt(b);


        if (object == button1|| object==menuItemAdd){

            try {


                    Socket s = new Socket("localhost", 4888);


                    DataInputStream input = new DataInputStream(s.getInputStream());
                    DataOutputStream output = new DataOutputStream(s.getOutputStream());
                    int z=1;

                    output.writeInt(z);
                    output.writeInt(num1);
                    output.writeInt(num2);
                    output.flush();


                int w=input.readInt();
                String wynik = ""+w;
                pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }


        }else if (object==button2 || object==menuItemSub){

            try {


                    Socket s = new Socket("localhost", 4888);


                    DataInputStream input = new DataInputStream(s.getInputStream());
                    DataOutputStream output = new DataOutputStream(s.getOutputStream());
                    int z=2;

                    output.writeInt(z);
                    output.writeInt(num1);
                    output.writeInt(num2);
                    output.flush();


                    int w=input.readInt();
                    String wynik = ""+w;
                    pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }
        }else if (object==button3 || object==menuItemMul){

            try {


                Socket s = new Socket("localhost", 4888);


                DataInputStream input = new DataInputStream(s.getInputStream());
                DataOutputStream output = new DataOutputStream(s.getOutputStream());
                int z=3;

                output.writeInt(z);
                output.writeInt(num1);
                output.writeInt(num2);
                output.flush();


                int w=input.readInt();
                String wynik = ""+w;
                pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }
        }else if (object==button4 || object==menuItemDiv){

            try {


                Socket s = new Socket("localhost", 4888);


                DataInputStream input = new DataInputStream(s.getInputStream());
                DataOutputStream output = new DataOutputStream(s.getOutputStream());
                int z=4;

                output.writeInt(z);
                output.writeInt(num1);
                output.writeInt(num2);
                output.flush();


                float w=input.readFloat();
                String wynik = ""+w;
                pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }



        }else if (object==button5){

            try {


                Socket s = new Socket("localhost", 4888);


                DataInputStream input = new DataInputStream(s.getInputStream());
                DataOutputStream output = new DataOutputStream(s.getOutputStream());
                int z=5;

                output.writeInt(z);
                output.writeInt(num1);
                output.writeInt(num2);
                output.flush();


                int w=input.readInt();
                String wynik = ""+w;
                pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }

        }else if (object==menuItemZamknij){

            try {


                Socket s = new Socket("localhost", 4888);


                DataInputStream input = new DataInputStream(s.getInputStream());
                DataOutputStream output = new DataOutputStream(s.getOutputStream());
                int z=9;

                output.writeInt(z);
                output.writeInt(num1);
                output.writeInt(num2);
                output.flush();


                int w=input.readInt();
                String wynik = ""+w;
                pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }

        }else if (object==button6 || object==menuItemUP) {

            try {


                Socket s = new Socket("localhost", 4888);


                DataInputStream input = new DataInputStream(s.getInputStream());
                DataOutputStream output = new DataOutputStream(s.getOutputStream());
                int z=6;

                output.writeInt(z);
                output.writeInt(num1);
                output.writeInt(num2);
                output.flush();


                int w=input.readInt();
                String wynik = ""+w;
                pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }

        }else if (object==button7 || object==menuItemSQRT){

            try {


                Socket s = new Socket("localhost", 4888);


                DataInputStream input = new DataInputStream(s.getInputStream());
                DataOutputStream output = new DataOutputStream(s.getOutputStream());
                int z=7;

                output.writeInt(z);
                output.writeInt(num1);
                output.writeInt(num2);
                output.flush();


                double w=input.readDouble();
                String wynik = ""+w;
                pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }

        }else if (object==button8 || object==menuItemFact){

            try {


                Socket s = new Socket("localhost", 4888);


                DataInputStream input = new DataInputStream(s.getInputStream());
                DataOutputStream output = new DataOutputStream(s.getOutputStream());
                int z=8;

                output.writeInt(z);
                output.writeInt(num1);
                output.writeInt(num2);
                output.flush();


                long w=input.readLong();
                String wynik = ""+w;
                pole3.setText(wynik);



            }catch(Exception IOE){
                IOE.printStackTrace();
            }

        }
    }
}

Server

import javax.swing.*;
import java.io.*;
import java.net.*;

public class Serwer extends Calc {

    public static int Add(int a, int b) { return a+b; }
    public static int Sub(int a, int b) {
        return a-b;
    }
    public static int Mul(int a, int b) {
        return a*b;
    }
    public static float Div(float a, float b) { return a/b; }
    public static int UP(int a,int b) { return (int) Math.pow(a,b); }
    public static double SQRT(double a)
    {
        return Math.sqrt(a);
    }
    public static long Fact(long a)
    {
        long wynik = 1;

        for (long i = a; i > 0; i--) {
            wynik *= i;
        }

        return wynik;
    }
    public static void main(String[] args) {
        try{
            ServerSocket ss = new ServerSocket(4888);
            Socket s = ss.accept();

            DataInputStream input = new DataInputStream(s.getInputStream());
            DataOutputStream output = new DataOutputStream(s.getOutputStream());

            int z = input.readInt();
            int a = input.readInt();
            int b = input.readInt();

            if(z==1){

                int wynikAdd = Add(a, b);
                output.writeInt(wynikAdd);

            }else if(z==2){

                int wynikSub = Sub(a, b);
                output.writeInt(wynikSub);

            }else if(z==3){

                int wynikMul = Mul(a, b);
                output.writeInt(wynikMul);

            }else if(z==4){

                JFrame f = new JFrame();
                if(a == 0 || b == 0) JOptionPane.showMessageDialog(f, "Nie dziel przez 0 !!!");

                float wynikDiv = Div(a, b);
                Math.round(wynikDiv);
                output.writeFloat(wynikDiv);

            }else if(z==5){
                pole1.setText("0");
                pole2.setText("0");
                pole3.setText("0");

            }else if(z==6){

                int wynikUP = UP(a, b);
                output.writeInt(wynikUP);

            }else if(z==7){

                double wynikSQRT = SQRT(a);
                output.writeDouble(wynikSQRT);

            }else if(z==8){

                long wynikFact = Fact(a);
                output.writeLong(wynikFact);

            }else if(z==9){
                System.exit(0);
            }

        }catch(Exception e){
            e.printStackTrace();
        }
        System.out.println("Koniec Pracy Serwera");
    }
}
1

public class Serwer extends Calc ale brzydkie dziedziczenie

Po dżumę czy inna cholerę serwer z GUI ? Czy w serwerowni siedzi jakiś krasnoludek, i klika w konsolę?

Na tym etapie <jakąś> komunikację masz
... ale podział ról klient- serwer jest mocno niejasny ... zgodnie z tischnerowską zasadą, jeśli czegoś nie da się wypowiedzieć po góralsku, to jest bzdura.
Wszystko zależy od wszystkiego ... akceptowalna jest jednokierunkowa zależność.
Magiczne liczby.

0

ok Ogarnięte Dziękuje za wszelką pomoc Pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1