Frage zur Socketprogrammierung

questionmark

Neues Mitglied
Hallöchen :)
hab eine kleine frage, auf die ich keine antwort finde.
ich benötige ein programm, das unterteilt ist in Klient und server.
ich kenne das so:
der server hat einen serversocket
der klient einen socket

nun hab ich beide erzeugt, aber der serversocket muss zuerst starten, da der socket vom klienten sonst meckert weil er kein I/O hat, und er schließt sich.
meine klienten sollen aber das programm immer laufen haben und erst reagieren wenn ein serversocket eröffnet wird.
da ich viele klienten habe wäre das ja quatsch den klienten den serversocket zu geben, der kann ja dann immer laufen.

versteht ihr was ich meine?
 
Zuletzt bearbeitet von einem Moderator:

FArt

Top Contributor
Die Frage war: versteht ihr was ich meine? Die Antwort ist: so ungefähr. Das hilft dir aber wohl noch nicht.

Überlege doch, ob nicht ein Webserver oder ein Applicationserver benötigt wird.

Für kleinere Sachen reicht auch Spring (mit Spring Remoting) oder eine andere Remoting API (Apache Mina, JBoss Remoting, Netty). Natürlich kann man auch vieles selber machen: RMI oder SIMON, oder Hardcore: Sockets.
 
S

SlaterB

Gast
welche Richtungen kommen denn ungefähr in Frage,
die Clients laufen schon bevor der Server da ist, schön und gut, aber was soll denn ungefähr passieren bei neuem Server,
soll der alle Clients aktiv ansprechen? oder diese periodisch nachschauen ob Server inzwischen da?
 
G

Gasd

Gast
das wäre eigentlich egal wie die server-client-verbindung geprüft wird
gefunden habe ich noch diesen thread (is der runnable :D )

http://www.java-forum.org/netzwerkp...r-server-client-chat-weiteren-funktionen.html

ist diese methode zu empfehlen? in einer schleife mehrere ports abzulaufen und zu warten bis ein port bindet? oder bessere methoden dafür?

p.s. ich komme nicht ins postfach...und passwort-vergessen geht leider auch nicht
kann ein admin meine email-adresse ändern?

questionmark
 

Morphastian

Mitglied
Frage: Was für einen Sinn soll es haben, wenn du mehrere Clienten hast, die aber im Endeffekt nichts machen können? Wäre nett wenn du dein Problem mal genauer beschreiben könntest.
 
G

Gasd

Gast
danke für deine antwort,
was die clienten dann machen ist ja egal
mein problem ist nur:

das client-programm soll mit windows starten(im autorun ordner) und so lange horchen, bis sich der server verbindet,
und dann BEISPIELSWEISE eine methode "sayHello()" ausführen.
aber wie Horche ich nach dem server? bis er startet eben.
eine lösung ist in dem thread den ich gelinkt hab, aber das schaut so..."unkonventionell" aus
 

Morphastian

Mitglied
Also erstmal ist diese Antwort ohne Gewähr.

Du könntest etwas in der Art versuchen:
Java:
private boolean bla;

try {
Socket socket = new Socket("IP", 1338);

while (bla == false) {
DataInputStream dataIn = new DataInputStream(socket.getInputStream());
DataOutputStream dataOut = new DataOutputStream(socket.getOutputStream());

//Lass den Clienten was machen :D

}catch (UnknownHostException e) {
e.printStrackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}

Somit würde quasi die ganze zeit gehorcht werden. Den Server lässt du beim Start dann einfach was schreiben, was der Client verarbeitet und "bla" true setzt. Bsp
Java:
dataOut.writeUTF("Anwesend");

Dies könntest du dann im Client widerrum mit
Java:
String Status = dataIn.readUTF();

if (Status.contains("Anwesend") {
bla = true;
}
verarbeiten.

Ich hoffe, das hilft, ist mir gerade eben eingefallen :eek:
 
Zuletzt bearbeitet:
G

Gasd

Gast
doch...mit einer abfrage
an ip horchen
bei conncection: weiter
bei keiner conection: von vorne
 

Michael...

Top Contributor
Klar kann man in einer Schleife solange versuchen eine Verbindung aufzubauen bis eine zustande kommt. Aber "horchen" kann man da nirgends. Im oben geposteten (Pseudo) Code wurde ja nur einmal versucht in ein Verbindung aufzubauen. Beim erfolgreichem Verbindungsaufbau macht die anschließende Schleife keinen Sinn, bei Fehlschlag wird die Schleife (abgesehen, dass sie auch hier keinen Sinn macht) nicht erreicht, da eine Exception fliegt.
 

mac21

Aktives Mitglied
anscheinend hast du ein ähnliches problem?

aber ich dachte auch, dass horchen bedeutet dass auf die accept() des servers gewartet wird?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Frage zum Keystore Netzwerkprogrammierung 21
E Socket Frage Netzwerkprogrammierung 6
T Frage bzgl. Socket-API Netzwerkprogrammierung 1
C Jetty 9 Non Blocking Handler Frage... Netzwerkprogrammierung 1
O log4j Appender Frage Netzwerkprogrammierung 6
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
C Frage zu Threads & Server Netzwerkprogrammierung 4
P Eine etwas andere Frage: Sicherheit Netzwerkprogrammierung 5
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
M allgemeine Frage zu einem Web Service Client Netzwerkprogrammierung 2
D HTTP Frage zu Login & Session ID Netzwerkprogrammierung 5
D HTTP nochne frage zu http requests Netzwerkprogrammierung 6
D "Fileserver" Frage + Mit Java zugreifen Netzwerkprogrammierung 9
S Socket-Frage zu einem LAN-Spiel. Netzwerkprogrammierung 3
Helgon Socket Socket IP Frage + Tutorial/Bücher Netzwerkprogrammierung 5
C Webservice Frage Netzwerkprogrammierung 2
M RMI Code Frage: Netzwerkprogrammierung 4
C Frage zur Klasse DatagramPacket Netzwerkprogrammierung 2
S Einfache Server Frage Netzwerkprogrammierung 5
xDarkSunx Kleine Frage authentifizierung Netzwerkprogrammierung 13
G Frage zu Servlets und deren Objekte + Bilder in Servlets anzeigen? Netzwerkprogrammierung 11
H Input-/OutputStream Frage Netzwerkprogrammierung 6
N Frage zu JNDI Netzwerkprogrammierung 2
B Frage zu einer Lösung (RMI) Netzwerkprogrammierung 2
X FAQ Frage - Netzwerkgrundlagen - ServerSocket und Socket Netzwerkprogrammierung 4
G Netzwerk IP Frage Netzwerkprogrammierung 4
S NanoHTTPD Server frage Netzwerkprogrammierung 5
E einfache Frage: wie Fehler untersuchen mit Tomcat Netzwerkprogrammierung 5
E Einfache Frage zu servlets und netbeans 6.5 Netzwerkprogrammierung 41
N Frage/Problem mit RMI Netzwerkprogrammierung 3
Kr0e Frage zu SO_TIMEOUT Netzwerkprogrammierung 3
K SCP und die Frage: Wie geh ich damit um? Netzwerkprogrammierung 7
K Frage zum Verhalten von SocketChannel.write(.) Netzwerkprogrammierung 9
G Frage zu Serversocket-Beispiel aus der FAQ Netzwerkprogrammierung 17
A Frage zur Verschlüsselung mit CipherInputStream Netzwerkprogrammierung 7
H Frage zu RMI Netzwerkprogrammierung 4
5 Grundlegende Design-Frage zu Webservices Netzwerkprogrammierung 16
C Frage zur ipcam WVC54GC von linksys ? Netzwerkprogrammierung 1
ven000m Mittlere Wartezeit Frage Netzwerkprogrammierung 5
T Frage bei Irc Verbindung Netzwerkprogrammierung 10
ven000m Frage aus einer mündl. Prüfung - wer kennt die Antwort? Netzwerkprogrammierung 6
S Serveranfrage - allgemeine Frage Netzwerkprogrammierung 2
ven000m Thread Frage Netzwerkprogrammierung 11
D Frage: Buffered Reader --> Wie komm ich an die Daten (Byt Netzwerkprogrammierung 3
H Frage zur Performance Netzwerkprogrammierung 10
flashfactor Frage zu HTML-Response Netzwerkprogrammierung 4
S GEHT DAS? - Nur eine Frage! (Printer Port direkt ansteuern?) Netzwerkprogrammierung 4
K Frage zu Net Send Netzwerkprogrammierung 7
G Frage zu JNDI / RMI Netzwerkprogrammierung 4
A ServerSocket prinzipielle Frage Netzwerkprogrammierung 5
M generelle Frage zum Versenden Netzwerkprogrammierung 4
L Frage nach Socket Netzwerkprogrammierung 4
E frage zu streams Netzwerkprogrammierung 2
Luma Verschiedene Frage zu nem Netzwerkprog Netzwerkprogrammierung 6
G einfache Frage zu ServerSocket ... Netzwerkprogrammierung 5
R Java - Socketprogrammierung Netzwerkprogrammierung 10
N "Jungfernflug" der Socketprogrammierung für ein Mühlespiel Netzwerkprogrammierung 8
D Socketprogrammierung Verbindung C++=>Java Netzwerkprogrammierung 23
N Threads und Socketprogrammierung Netzwerkprogrammierung 4

Ähnliche Java Themen


Oben