erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw.

Vilkazzz

Mitglied
Hallo,

google sei dank hab ich das meiste gefunden und mein erstes server/client Pärchen geschrieben.

die beiden finden sich, alles gut.

nun hab ich frage ob ich mit der Client struktur alles richtig gemacht habe ?

ich habe eine JavaFXUI in der HauptMethode,
dann hab ich eine "Connector" die aufgerufen wird, wenn ein Knopf aufder UI gelickt wird.

dann steht erstmalls die Verbindung zwischen server und client app, werden ein paar Begrüssungen ausgetauscht, alles Tutorial like.

nun, da die Verbindung steht, möchte ich beim klicken von anderen Knöpfen daten mit dem Server auszutauschen, jenachdem welcher knopf keklickt wird, soll was anderes zurück.

nennen wir mal die methode "MatrixWasClicked".

bisher ist die bei mir lediglich eine testmethode.

Java:
    public static void MatrixWasClicked(Integer id){
        System.out.println("Matrix number "+id+" was clicked");

    }


meine Fragen sind nun wie folgt, kann die "matrixWasclicked" methode überprüfen, ob die Verbindung zwischen dem server und client aktiv ist ? die verbindung wurde ja in einer anderer methode aufgebaut !

kann ich überhaupt mit einer Methode die Verbindung aufbauen, und dann durch andere Methoden die Daten dem Server schicken / von server empfangen ?


dies wäre meine Verbindungs Methode
Java:
 public static void Connector(String serverName) {

        {
            int port = 9980;
            try {
                System.out.println("Connecting to " + serverName
                        + " on port " + port);
                Socket client = new Socket(serverName, port);
                System.out.println("Just connected to "
                        + client.getRemoteSocketAddress());
                OutputStream outToServer = client.getOutputStream();
                DataOutputStream out;
                out = new DataOutputStream(outToServer);

                out.writeUTF("Hello from "
                        + client.getLocalSocketAddress());
                InputStream inFromServer = client.getInputStream();
                DataInputStream in =
                new DataInputStream(inFromServer);
                System.out.println("Server says " + in.readUTF());

                //client.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

und so rufe ich sie in der GUI auf

Java:
  connectBtn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                Connector(topServeradressField.getPromptText());
                        }
        });


damit nicht zuviel brei in einem Code ist, woltle ich die aufgaben ein bissle verteilen,
daher wollteich ursprünglich beim clicken eines buttons lediglich

Java:
  MatrixWasClicked(i);

aktivieren, und dort dann in Abhängigkeit von der ID entsprechend mit dem server weiter komunizieren.

nur kann ich in der "matrixWasClicked" auf die im "connector" erstellte verbindung, und die ganzen StreamWriter usw zugreifen ?
 

turtle

Top Contributor
kann ich überhaupt mit einer Methode die Verbindung aufbauen, und dann durch andere Methoden die Daten dem Server schicken / von server empfangen ?
Klar geht das:)

Du kannst dir ja den Socket speichern/merken und dann jederzeit den Input/Outputstream holen. Neben dem Socket (oder dessen In/Out-Streams) kannst du dir natürlich auch merken, ob bereits eine Verbindung hergestellt wurde obwohl dies wohl immer der Fall sein dürfte wenn der Socket null ist.
 
Zuletzt bearbeitet:

Vilkazzz

Mitglied
Sonntag, 17h, Turtle hillft ;)

mein Problem ist dann wohl, das ich noch nicht weiss wie ich das mache, aber schonmal gut zu wissen dass es geht, sonst hab ich mal wieder ein Code-Brei.

in meiner connector methode hab ich

Java:
 Socket client = new Socket(serverName, port);

wenn ich ausserhalb der Methode versuche auf Client zuzugreifen geht dies natürlich nicht.

Soll ich eine copy von dem socket irgendwie in der hauptmethode erzeugen, und dann beim Buttonclick
es als parameter weitergeben ? geht es ?

hast du irgendwo ein tutorial oder ein code beispiel wo sowas gemacht wird ?
(socket speichern und auf die VErbindung zugreifen?

ich bin da halt noch total grün -.- aber ist eine Aufgabe für eine Azubi-Bewerbung, will es möglichst schön machen :)

ich hab mir schon socket adresse ausgedrückt :D

Java:
 System.out.println(client.getLocalSocketAddress());

um anfangs es manuell zu erzwingen, und wäre für jeden weiteren hinweis dankbar :)

sonst google ich heute abend weiter, jetzt weiss ich ja , dass es geht, nur noch rausfinden wie ;)
 

turtle

Top Contributor
Socket client würde ich als Member-Attribut der Klasse machen.
Dann verkürzt sich die Zeile zu
Java:
client = new Socket(serverName, port);
und dann vielleicht noch einen getter dafür schreiben. Bitte KEINE copy von dem socket machen, da ja "unterliegend" feststeht, welche TCP/IP-Eigenschaften verknüpft sind.:D
 

Vilkazzz

Mitglied
so, habe einiges rumprobiert, am ende versuch ich es so zu vereinfachen wie es nur geht :)

also, hab eine methode gemacht, die nichts weiteres macht als einen Socket herzustellen und es als Return gibt



Java:
 public Socket MakeSocket(String serverName) {
        Socket socket;
        socket = null;
        int port = 9980;
        try {
            socket = new Socket(serverName, port);
            } 
        catch (IOException e) {
            e.printStackTrace();
        }
        return socket;
    }

soweit sogut, problem ist ja nur, dass es jedes mal einen neuen socket mir erstellt wenn ich es aufrufe.

einen getter, konnte ich da nicht einabauen !

den geter hab ich mir so vorgestellt

Java:
 public Socket getSocket(){
                try{return socket;
                }
                catch (IOException e) {
                    e.printStackTrace();
                }
            }

aber unabhängig davon in welchen Teil der Methode MakeSocket eingefügt habe,
hab ich nur Fehler bekommen :/

ok dann, evtl muss ich mit classes arbeiten.

also hab ich eine

Java:
public class CreateSocket {
        int port = 9980;
        String serverName = "";
        Socket socket;

        {
            try {
                socket = new Socket(serverName, port);
            } catch (IOException e1) {
                e1.printStackTrace();
            }

        }

        public String getServerName() {
            return serverName;
        }
        public void setServerName(String serverName) {
            this.serverName = serverName;
        }
        public Socket getSocket() {
            return socket;
        }

  
    }

gemacht, teoretisch, sollte ich mit setSocket dort einen socket erschaffen (richtige name und port vorausgesetzt)

und von da könnte ich mit "getSocket" es immer abrufen, evtl kann ich dann da gleich in IN und OUT methoden beschreiben. nur da bekomme ich diese Meldung

setServerName.jpg

oder ist es ehe unratsam sockets weiterzugeben ?

evtl ist es klüger lediglich die

Java:
 socket.getOutputStream()
socket.getInputStream()

irgendwie zu vererben ?

nun hab ich halben Tag damit verbracht, aber ich schaff nicht mit den socket von einer methode mit anderen methoden zu teilen o_O

ich versuch mal die clientdatei von anfang an neu zu schreiben, evtl ist meine Architektur oder Denkweise falsch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
E Erste Server-Client Anwendung Netzwerkprogrammierung 2
M Nur die erste Nachricht kommt beim Server an Netzwerkprogrammierung 11
K Erste Schritte mit Netzwerken: Verbindungs-Block Netzwerkprogrammierung 1
Kenan89 JSP-erste Schritte, Java einzubauen Netzwerkprogrammierung 16
D RMI Erste Versuche mit RMI... klappt nicht Netzwerkprogrammierung 35
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
T Jetty mit Client-Zertifikat nur bei spezifischer URL Netzwerkprogrammierung 1
J Einlesen von Servernachrichten von TCP-Client Netzwerkprogrammierung 17
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
T Client zu Client Kommunikation Netzwerkprogrammierung 2
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
ruutaiokwu ständig "sender address rejected: improper use of smtp" bei smtp-client Netzwerkprogrammierung 4
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
A Client Client Übertragung Netzwerkprogrammierung 12
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
U Socket Client mit hash authentifizieren Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
J Client - Serversocket Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
N Fragen zu Sockets Client Netzwerkprogrammierung 3
F Extasys TCp Client extends Funktion Netzwerkprogrammierung 0
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
O Client zwischen XML und JSON auswählen lassen Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
A Socket Wie ein einfacher Multithreads Service mit Telnet als Client mit Observable/Observer gelöst.... Netzwerkprogrammierung 0
K C# Server - Android Client Netzwerkprogrammierung 0
T Application Client NullPointerExc Netzwerkprogrammierung 7
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
H HTTP REST Jersey - PUT-Beispiel von Client senden Netzwerkprogrammierung 0
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
X RMI: Woher kennt der Client das Schnittstellen-Interface? Netzwerkprogrammierung 2
E Thematik Client server Netzwerkprogrammierung 2
D UDP Client empfängt nichts Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
S Client Anwendung mit zentraler SQL-Datenbank Netzwerkprogrammierung 3
N Client Identifikation eines Servers Netzwerkprogrammierung 1
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
D SSH Client Netzwerkprogrammierung 7
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
B TCP Client Android Netzwerkprogrammierung 3
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
OnDemand Ist Client noch angemeldet? Netzwerkprogrammierung 7
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
D Socket UDP Client reagiert nicht auf spontane Meldungen Netzwerkprogrammierung 5
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
M Client sendet nur, wenn das Socket geschlossen wird Netzwerkprogrammierung 53
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
S Socket (client) verbindet nicht Netzwerkprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben