Input/Output einfachen Socket für XML-Anfragen bauen

== != equals

Aktives Mitglied
Guten Morgen Sportsfreunde,

ich versuche derzeit eine Serveranwendung zu erstellen, welches XML-Anfragen von einem Socket empfangen, aber auch an ihn senden kann. Ich versuche als erstes, ein einfaches Login hinzusenden und eine Bestätigung zu erhalten.

Java:
		// Verbindung und Streams herstellen
		Socket server = new Socket("liveticker.seite.com",1970);
		InputStream input = server.getInputStream();
		BufferedReader data_in = new BufferedReader(new InputStreamReader(input));
		OutputStream output = server.getOutputStream();
		
		// eine Anfrage versenden
		String anfrage = "<Kunde timestamp=\"0\" type=\"login\" kundenID=\"1234\" key=\"abcdef\"></BookmakerStatus>";
		byte[] byteArray=anfrage.getBytes();
		output.write(byteArray);
		
		boolean quit = false;
		
		// ab jetzt ganze Zeit Anfragen lesen
		while (!quit)
		{
			String msg = data_in.readLine();
			
			if (msg!=null)
			{
// erstmal einfach Antwort anzeigen, parsen usw. dann später
				System.out.println("Server meint: "+msg.trim());
			}
			else
			{
				quit = true;
				System.out.println("Abbruch");
			}
		}
		
		server.close();
		input.close();
		output.close();
Leider ist der erste Wert der msg schon null. Ansonsten werden keine Fehler ausgegeben, die Streamdaten sollten auch stimmen. Ich erwarte also eine Ausgabe.
Sicherlich ist der Code sehr verbesserungswürdig, ich habe ihn als Ergebnis meiner Recherche in diesem Forum und anderen Seiten erstellt. Nun brauche ich einen kleinen Stupps, um weiterzukommen.

Danke für jede Hilfe. ;)
 

AlexSpritze

Bekanntes Mitglied
Hilft es vielleicht, wenn du den InputStream erst öffnest, wenn du in den OutputStream geschrieben hast? Ist nur eine Vermutung.

Laut API, wenn BufferedReader.readLine null zurückliefert, ist das Ende des Stream erreicht worden.
 
T

Tomate_Salat

Gast
Code:
<Kunde timestamp=\"0\" type=\"login\" kundenID=\"1234\" key=\"abcdef\"></BookmakerStatus>
Das ist kein wohlgeformtes XML. Sicher, dass der Server damit klar kommt?
 

== != equals

Aktives Mitglied
Ich habe nun einen anderen Port benutzt, der lt. Serverbetreiber besser laufen soll.
Beim Debuggen komme ich nun nicht über data_in.readLine() hinweg. Es kommt keine Fehlermeldung, aber ich kann auch nicht weiter steppen. Wie ist das zu deuten? Das wirkt schonmal besser, oder?

Hilft es vielleicht, wenn du den InputStream erst öffnest, wenn du in den OutputStream geschrieben hast?
Ich erhalte dann die SocketException "Socket is closed"

Das ist kein wohlgeformtes XML. Sicher, dass der Server damit klar kommt?
Sorry, hatte ich danach noch behoben.
Ich hatte es auch mit folgendem String probiert:
[XML]<?xml version="1.0"?><Kunde timestamp="0" type="login" kundenID="1234" key="abcdef"></Kunde>[/XML]
[JAVA=8]String anfrage = "<?xml version=\"1.0\"?><Kunde timestamp=\"0\" type=\"login\" kundenID=\"1234\" key=\"abcdef\"></Kunde>";[/code]
Der Server gibt aber angeblich auf jeden Fall etwas zurück.
 
S

SlaterB

Gast
ein blockierter Socket klingt besser, ja,
wahrscheinlich wird kein Zeilenumbruch gesendet worauf das readLine() wartet

verwende etwas anderes wie DataInputStream.readChar()
 
S

SlaterB

Gast
[c]BufferedReader input = (BufferedReader) server.getInputStream();[/c]
liefert genauso eine ClassCastException, wie bist du denn dort vorangekommen?
Beispiele und Tutorials solltest du schon selbstständig im Internet suchen

Bytes einlesen und umwandeln ist durchaus auch eine Alternative, ja,
überhaupt wäre erstmal interessant, ob schon ein Byte != -1 ankommt
 

== != equals

Aktives Mitglied
[JAVA=15]InputStream input = server.getInputStream();
BufferedReader data_in = new BufferedReader(new InputStreamReader(input));
int msg = data_in.read();[/code]
Bleibt bei read() auch hängen. Hier müsste doch irgendwann irgendetwas (-1 bis 1) kommen?
 
S

SlaterB

Gast
nur wenn eben ein Byte gesendet wurde (!= -1) oder der Stream beendet ist (-1),
wenn der Server nichts sendet, dann wird gewartet,

tja, warum ist jetzt die Frage..
 

== != equals

Aktives Mitglied
Java:
while(data_in.ready()==false)
Meine Schleife läuft auch ganze Zeit, es scheint wirklich nichts zu kommen.

Kann das mit einer Server-Firewall (von der ich nichts weiß) zusammenhängen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Ich komme nicht mehr weiter bei so einer einfachen Sache... Java Basics - Anfänger-Themen 18
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
C Die Klasse Menge mit Konstruktoren und einfachen Methoden Java Basics - Anfänger-Themen 5
J Einfachen String ausgeben Java Basics - Anfänger-Themen 4
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
A Erstellung eines einfachen Plugin HILFE ! Java Basics - Anfänger-Themen 19
L einfachen kalender Programmieren HA! Java Basics - Anfänger-Themen 76
A Doppelter Backslash durch einen einfachen Backslash ersetzen Java Basics - Anfänger-Themen 6
StrikeTom Was ist an dieser einfachen funktion falsch? Java Basics - Anfänger-Themen 5
Y Problem mit einfachen Methoden Java Basics - Anfänger-Themen 18
F "n cannot be resolved" Fehler im einfachen programm - Warum? Java Basics - Anfänger-Themen 11
C Konstanten zu einfachen Berechnungen unterhalb Main Methode Java Basics - Anfänger-Themen 19
brainray Einfachen RMI Server bei einem Provider zum Laufen bringen Java Basics - Anfänger-Themen 3
Y Einfachen Quelltext in UML darstellen mit Eclipse Java Basics - Anfänger-Themen 8
Binary.Coder Bubblesort in einfachen unmissverständlichen Sätzen Java Basics - Anfänger-Themen 2
S Benutzereingaben in einfachen numerischen Matheaufgaben Java Basics - Anfänger-Themen 7
M Suche einen ganz einfachen Editor (syntax Highlighting+comp) Java Basics - Anfänger-Themen 7
F Erstellen von einfachen JFrame Java Basics - Anfänger-Themen 2
B Ertsellung einer einfachen Matrix Java Basics - Anfänger-Themen 12
G Problem mit einer ganz einfachen Funktion Java Basics - Anfänger-Themen 8
M Hilfe bei einem einfachen Java-Programm Java Basics - Anfänger-Themen 41
B Brauche Hilfe bei nem ganz einfachen Programm... Java Basics - Anfänger-Themen 4
izoards Socket Kommunikation Java Basics - Anfänger-Themen 16
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
G Socket Verbindung aufbauen Java Basics - Anfänger-Themen 11
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
S Asynchrone Socket-Abfragen Java Basics - Anfänger-Themen 5
Meeresgott OOP Socket Verbindung richtig Kapseln Java Basics - Anfänger-Themen 0
O Socket by reference übergeben Java Basics - Anfänger-Themen 0
J Socket schließen - Ist eine SocketException unumgänglich? Java Basics - Anfänger-Themen 4
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
N Socket-Programmierung Java Basics - Anfänger-Themen 4
M wait/notify bei Socket Java Basics - Anfänger-Themen 4
B Input/Output Socket I/O - outputStream.write(-1) Java Basics - Anfänger-Themen 2
B Socket OutputStream Java Basics - Anfänger-Themen 17
B Socket Kommunikation in beide Richtungen Java Basics - Anfänger-Themen 12
B Socket, args Java Basics - Anfänger-Themen 22
L Socket in JTextArea Java Basics - Anfänger-Themen 9
T Input/Output Zwei InputStreams von einem Socket Java Basics - Anfänger-Themen 2
B Socket Problem Java Basics - Anfänger-Themen 3
T socket.close aber verbindung besteht noch Java Basics - Anfänger-Themen 4
F Buffered Image über Socket versenden Java Basics - Anfänger-Themen 6
E Socket InputStream "terminiert" nicht Java Basics - Anfänger-Themen 4
B Threads Interrupt während Socket.read()? Java Basics - Anfänger-Themen 3
M Versand von Nachrichten via Socket (Delay) Java Basics - Anfänger-Themen 21
F socket-problem Java Basics - Anfänger-Themen 6
E Input/Output Socket bekommt keine Verbindung bei funktionierendem Fremdziel Java Basics - Anfänger-Themen 2
E Socket (Client) dauerhaft aktiv? Java Basics - Anfänger-Themen 9
D Java - Socket - Datenübertragung Java Basics - Anfänger-Themen 18
R Cannot find a free socket for the debugger Java Basics - Anfänger-Themen 6
F Socket Kommunikation Java Basics - Anfänger-Themen 4
M "Connection reset" gbxRemote Socket Java Basics - Anfänger-Themen 9
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
L FTP per Socket Java Basics - Anfänger-Themen 2
M Audio Stream läuft auf :connection abort: socket write error Java Basics - Anfänger-Themen 2
J Socket - BufferedReader lese Problem Java Basics - Anfänger-Themen 2
M Socket Server Java Basics - Anfänger-Themen 9
N Socket Problem? Java Basics - Anfänger-Themen 9
G Socket erstellen dauert sehr lange. Java Basics - Anfänger-Themen 4
H Java Socket Java Basics - Anfänger-Themen 14
A XML Daten über Socket Java Basics - Anfänger-Themen 3
I Allgemeine fragen zu Socket server Java Basics - Anfänger-Themen 6
C Socket Programmierung Java Java Basics - Anfänger-Themen 4
F Socket Instanz auf Klasse welche von Socket erbt zuweisen Java Basics - Anfänger-Themen 3
ven000m Wieso antwortet mein Server nicht mehr (Socket Anwendung) Java Basics - Anfänger-Themen 2
J Daten von einem (char*)Socket einlesen. Java Basics - Anfänger-Themen 3
S Java Socket Java Basics - Anfänger-Themen 3
K Frage zu SdtOut streams bzw. Socket Programmierung Java Basics - Anfänger-Themen 3
M HTTP-Anfragen und Socket Java Basics - Anfänger-Themen 2
A von Socket-Stream lesen Java Basics - Anfänger-Themen 4
M Ändern einer Socket-Eigenscheft aus einem modalen Dialog? Java Basics - Anfänger-Themen 6
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 3
G Icon für App Java Basics - Anfänger-Themen 1
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
D Apache HTTPClient für alle Fälle Java Basics - Anfänger-Themen 41
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
M Minimax-Algorithmus für Vier gewinnt Java Basics - Anfänger-Themen 11
M GUI für Vier-Gewinnt. Java Basics - Anfänger-Themen 4
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
Ostkreuz Counter für Booleanwerte Java Basics - Anfänger-Themen 8
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
M monte carlo Algorithmus für 4 gewinnt Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben