Empfangen von Strings

Status
Nicht offen für weitere Antworten.

H3llGhost

Bekanntes Mitglied
Hallo Leute,

ich habe folgenden Code:
Code:
  public void send(String message) {
    try {
      out.writeUTF(message);
    }
    catch(IOException e) {
      e.printStackTrace();
    }
  }

Wie kann ich das von einem Client mit dem InputStream sichtbar machen?
Ich habe mir überlegt das ich das mit folgendem Code machen kann:

Code:
    private ArrayList<String> inpt;
    String tmp = "";
    inpt.clear();
    try
    {
     while (!((tmp = in.readUTF()) != null)) //(!(tmp = in.readLine()).equalsIgnoreCase("</antwort>"))
     {
      inpt.add(tmp);
      System.out.println(tmp);
     }
    } catch (Exception e)
    {
     System.out.println(e);
     System.out.println(inpt);
    }

Mein Problem ist jedoch, dass der Client scheinbar nichts empfängt.
Vielleicht ist da auch ein Fehler in der while-Schleife ...

Ich bitte um einen Tipp von eurer Seite!
Danke im Voraus! :)
 
S

SlaterB

Gast
der Sender sendet vielleicht erst nach einem
flush();
Aufruf

die doppelte Negation in der while-Schleife ist aber auch schlecht, stimmt
 
S

SlaterB

Gast
nene, repariere doch erst lieber mal dein while,
prüfe mal mit

while (!((tmp = "Hi") != null))

ob das läuft
 

H3llGhost

Bekanntes Mitglied
Habe die nun zu
Code:
while((text = in.readUTF()) != null)
angepasst und nun geht es ... ;)
Danke für deinen Tipp ...
Leider funktioniert das noch nicht so ganz mit dem Senden und Empfangen ...
 

H3llGhost

Bekanntes Mitglied
Hmm ...
Danke jetzt scheint es zu gehen ...
Ich werde es nun mal andersrum probieren ... :)

EDIT:

So mein Problem war ja folgendes noch:
Der Client soll solange auf horchen gehen bis der String mit </antwort> endet.
Oder wie würdet ihr das am Besten realiseren, dass der Client auf den Server horcht?
Mit einem einzelnen Thread dafür?
 

The_S

Top Contributor
Code:
while(!"</antwort>".equals(text = in.readUTF())) {
}

!?
 
S

SlaterB

Gast
denk doch mal bitte eine Sekunde nach..
du empfängst vom Server Strings, ok,
darin wird schon </antwort> drinstehen, ok

warum sollte man nun nicht darauf testen können, selbstverständlich geht sowas,
die Frage 'Geht das überhaupt?' macht überhaupt keinen Sinn, verärgert mich ;)

----------

natürlich kann es gut sein, dass Hobbits Code nicht deine Aufgabe erfüllt, z.B. wenn </antwort> nicht eine eigene Zeile ist,
was liest überhaupt readUTF(), immer eine Zeile? zu welchem Reader gehört das?

fang doch erstmal ganz klein an, und lies die Strings ein und gib sie mit System.out.println() aus, dann siehst du ja was ankommt,

wenn </antwort> in einem größeren String mit drinsteckt, dann musst du mit contains() prüfen
 

H3llGhost

Bekanntes Mitglied
Es kommt ja nichts an ...
Das ist es ja ...
Und er geht sofort aus der While-Schleife raus obwohl kein </antwort> ankommt ...
 
S

SlaterB

Gast
> Es kommt ja nichts an ...

aha, es kommt nichts vom Server an und du überlegst, wie du </antwort> daraus lesen kannst?
sehr sinnig

aber ich gebe nun auf bei solchen einsilbigen '...'-Antworten ohne Code, genaue Beschreibung,
Hobbit, übernimm wieder ;)
 

H3llGhost

Bekanntes Mitglied
Ich werde mal den ganzen Code posten und von euch mir garantiert anhören können, dass das wohl Müll ist ... xD
Also das ist mein Server:

EDIT²:
Code entfernt auf Grund der Länge ...
/EDIT²

Ich hoffe SlaterB das gefällt dir ein bisschen mehr ... ;)

In der Klasse Draw ist eine Methode receive() und diese empfängt leider nichts ...
Ich bekomme da eine NullPointerExecption und die ArrayList ist leer.
Sprich er empfängt nichts, was wie zu sehen ist ich mit einem System.out.println() mache.

Wie ich gerade genauer überprüft habe kommt die NullPointerException bei dem Code: while(!"</antwort>".equals(tmp = in.readUTF())).
Ich habe das gerade dann als einzelne Zeile geschrieben, also das tmp = in.readUTF() und da kommt derselbe Fehler.
Ich würde sagen dann muss in meinem Programm was mit dem DataInputStream nicht stimmen oder was meint ihr?

EDIT:
Und genau daran lag es ... :)
Ich habe in dem Konstruktor der Klasse ppDraw den Übergabeparameter als in2 benannt, er musste aber in heißen.
/EDIT

Desweiteren würde ich das mit dem Server gerne so Regeln wie bei einem Chatserver, als ein Client sendet die Koordinaten des Schlägers und der Server soll das dann an alle Clients senden.
Genauso wie die Koordinaten des Balles.
In meiner alten Version mit dem BufferedReader und PrintWriter hat es extrem geruckelt aus diesem Grund bin ich umgestiegen, da man nun auch synchronized benutzen kann ... (vielleicht konnte man es auch vorher schon benutzen wusste ich dann aber nicht).
 
S

SlaterB

Gast
man kann es auch in die andere Richtung übertreiben

> Ich habe in dem Konstruktor der Klasse ppDraw den Übergabeparameter als in2 benannt, er musste aber in heißen.

na das klingt ja nach wichtigen Problemen,
so ins Detail und 600 Zeilen Code möchte ich persönlich auch wieder nicht

wenn es noch um das urspüngliche Sende/ Empfangen geht, dann bitte in zwei kleinen Testprogrammen zu je 50-100 Zeilen, ohne GUI oder sonstige Nebensächlichkeiten,

klar macht das Arbeit, aber dabei legt man die wichtigen Programmstellen frei und findet manche Fehler schon so
 

H3llGhost

Bekanntes Mitglied
Entschuldigung ...
Ich wollte ehrlich gesagt auf Codeschnipsel verzichten, damit es einfacher wird alles zu verstehen.
Aber danke für den Tipp ich werde mich beim nächsten Mal dran halten ... :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G UDP Packet empfangen funktioniert nicht. Netzwerkprogrammierung 16
H Socket Kann ein Socket server 2 dimensionale Arrays empfangen und versenden? Netzwerkprogrammierung 3
T UDP Pakete empfangen ohne Programm zu blockieren Netzwerkprogrammierung 3
X Daten können nicht sofort empfangen werden Netzwerkprogrammierung 1
S Server - Mehrere Klassen sollen Daten senden und empfangen Netzwerkprogrammierung 25
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
K Socket Chat-GUI eigenes Event nach Empfangen Netzwerkprogrammierung 2
Z Socket Probleme beim Senden und Empfangen Netzwerkprogrammierung 5
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
T Empfangen klappt Senden nicht - Connection timed out Netzwerkprogrammierung 12
1 Datei senden/empfangen funzt nicht... Netzwerkprogrammierung 5
M Objekt über socket senden/empfangen Netzwerkprogrammierung 3
A Socket DNS Update Pakete empfangen Netzwerkprogrammierung 3
P Server/Client Daten empfangen, wenn Daten gesendet werden Netzwerkprogrammierung 9
B Socket Daten empfangen funktioniert nicht richtig - wo liegt der Fehler? Netzwerkprogrammierung 7
KeNnY_tHe_OwNeR Empfangen geht, Senden nicht ?! Netzwerkprogrammierung 18
B Befehle an Gameserver senden bzw. empfangen Netzwerkprogrammierung 2
M Client/Server Antwort von Server empfangen Netzwerkprogrammierung 6
F Daten senden und empfangen mit Applet Netzwerkprogrammierung 8
I Problem beim empfangen von Daten (Zahlen) Netzwerkprogrammierung 7
A String per ByteBuffer empfangen? Netzwerkprogrammierung 6
M TCP Socket und Server int senden und empfangen Netzwerkprogrammierung 6
G Probleme mit Firewall beim empfangen von dateien über socket Netzwerkprogrammierung 6
F Datei senden und empfangen Netzwerkprogrammierung 4
D DatagramSocket Empfangen Textarea Netzwerkprogrammierung 2
M Vom Server per Socket Empfangen, aber wieviel Bytes? Netzwerkprogrammierung 11
TRunKX Hilfe beim senden und empfangen Netzwerkprogrammierung 2
D Performance Problem beim File senden, empfangen Netzwerkprogrammierung 4
S senden und empfangen von Objekten? Netzwerkprogrammierung 7
L Strings an Server senden und in MYSQL speichern? Netzwerkprogrammierung 3
D Strings per Schleife zum Client senden Netzwerkprogrammierung 4
B Socket NIO-Server/Client-Abgeschnittene Nachrichten (Strings) Netzwerkprogrammierung 6
Q Problem bei Vergleichen von Strings übertragen über eine Socketverbindung Netzwerkprogrammierung 3
G Verschlüsselte Strings über Netzwerk verschicken Netzwerkprogrammierung 19
B lange Strings in http-Request? Netzwerkprogrammierung 3
W Socket Client-Server Verbindung. Wie Strings senden? Netzwerkprogrammierung 6
B Strings versenden | Nur 1 Client Netzwerkprogrammierung 6
G Strings über Sockets senden Netzwerkprogrammierung 5
M lange Strings senden Netzwerkprogrammierung 16
B Problem mit der Ausgabe eines Strings an SocketOut Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben