Ende eines Inputstreams ermitteln

Status
Nicht offen für weitere Antworten.

UdjENE

Mitglied
hallo zusammen,

habe da ien Problem beim Empfangen des Inpustreams vom Server. also ich möchte Daten vom Server empfangen, und in einer Textarea ausgeben. jedoch will ich nach dem Empfang eines gesendeten Strings eine neue Zeile in der textarea erstellen. daher müsste ich wissen wann der gesendete String zu ende ist. readLine kann ich nicht benutzen , weil die gesendeten Strings ohne newLine am Ende gesendet werden. heir ist mal mein ansatz:
Code:
server = new Socket("localhost", port);
			
			BufferedReader input = new BufferedReader(new InputStreamReader(server.getInputStream()));
			 
			while (!liveThread.isInterrupted())
			{
				DateFormat dateInstance = new SimpleDateFormat ("HH:mm:ss:SSS "); 
				timeStamp = dateInstance.format( new Date() );
				
				char[] buffer =new char[5000];
				int bufferLength = input.read(buffer); 
				
				for(int i=0; i<bufferLength; i++){
					code=input.read();
					char c = (char)code;
					TLog.setText(TLog.getText() + c );
				}
				TLog.setText(TLog.getText() + "\n" + timeStamp + " STRINGENDE\n");
				TLog.setCaretPosition(TLog.getText().length());
				
				
			}
			
			server.close();
			input.close();

das problem bei diesem code ist, dass ich erst beim ersten Input die Länge auslesen kann (input.read(buffer)) und beim zweiten Input den Inhalt (input.read()). leider wird am Ende keine -1 oder sowas bie input.read gesendet.
hat jemand eine Idee wie ich das Ende ermitteln kann? bzw. komm ich mit Datagram-Socket weiter?
 

Murray

Top Contributor
Du hast schon mit dem ersten read Daten gelesen (maximal 5000 Byte, vielleicht aber auch weniger); diese ignorierst du dann aber im weiteren Verlauf - so kann das nicht gehen.

Die Länge eines InputStreams ist prinzipiell nicht bekannt. Du musst entweder zu Beginn die Länge übertragen oder eine eindeutige Kennung mitschicken, an der der Empfänger erkennen kann, dass ein Datensatz komplett ist.
 

HoaX

Top Contributor
oder einfach nach der übertragen die verbindung beenden. dann weiß auch der empfangende socket dass das ende erreicht ist ;)
 

UdjENE

Mitglied
danke für die antwort. ich hab variante mit der Kennung senden genommen. also der Server sendet folgenden String: <005>hallo und angezeigt wird dann hallo.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
1 SSH-Kommunikation - Ende eines Streams nicht erkenntlich Netzwerkprogrammierung 2
K Ende eines HTTP Response/Request Netzwerkprogrammierung 6
K "Ende eines Sockets" Netzwerkprogrammierung 9
M Socket, Ende Dateitransfer Netzwerkprogrammierung 4
G Sockets und HTTP: Ende des Datenempfangs erkennen Netzwerkprogrammierung 3
m@nu Ende von Stream bei HTTP-Request Netzwerkprogrammierung 3
M Ende des Streams ohne Schließen/Checksumme mitsenden Netzwerkprogrammierung 2
D Timeouts ohne Ende bei SMTP und FTP Netzwerkprogrammierung 3
M SocketError bei Aufruf eines SOAP-Servers Netzwerkprogrammierung 8
G seite nach posten eines html-forms laden Netzwerkprogrammierung 0
J Protokolle innerhalb eines Heimnetzwerks Netzwerkprogrammierung 6
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
N Name eines Attributes aus einem festen String und einer Variablen generieren Netzwerkprogrammierung 5
X Response eines RESTful-Service mit JSON Netzwerkprogrammierung 8
F Neuer Json aus teilen eines vorhandenen Json Netzwerkprogrammierung 0
N Client Identifikation eines Servers Netzwerkprogrammierung 1
R Problem beim Programmieren eines Chatprogramms Netzwerkprogrammierung 5
K Multiplayer eines Spiels Netzwerkprogrammierung 21
K Ansprechen eines Remote Druckers Netzwerkprogrammierung 2
L Erstellen eines Online Multiplayer Apps Netzwerkprogrammierung 10
eLogic Download eines Links Netzwerkprogrammierung 2
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
2 Schliessen eines Serversockets Netzwerkprogrammierung 2
Hindi93 Abbruch eines Programmes abfangen Netzwerkprogrammierung 8
C Alle Computer eines Netzwerkes finden Netzwerkprogrammierung 32
N Senden eines Arrays Netzwerkprogrammierung 6
U Name eines Netzlaufwerks ermitteln Netzwerkprogrammierung 5
L Body eines http Request auslesen Netzwerkprogrammierung 2
aze Tcp Verkehr eines Applets simulieren Netzwerkprogrammierung 10
J Socket Erreichbarkeit eines Java Servers (Socket-Lösung) über das Internet Netzwerkprogrammierung 3
M Socket Leistungsfähigkeit eines xSocketservers, wieviele Verbindungen max? Netzwerkprogrammierung 4
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
cowabunga1984 Transferierte Datenmenge eines SOAP Clients (JAX-WS) anzeigen Netzwerkprogrammierung 2
K TrafficClass eines UDP Pakets kommt beim Empfänger nicht an Netzwerkprogrammierung 5
musiKk Problem bei bidirektionaler Nutzung eines Socket Netzwerkprogrammierung 2
J Machbarkeit eines Bluetooth-Servers? Netzwerkprogrammierung 2
S Realisierung eines Netzwerkcodes für ein Strategiespiel Netzwerkprogrammierung 7
A Broadcast - senden eines Packetes an alle rechner im netz Netzwerkprogrammierung 15
P problem beim schließen eines Streams Netzwerkprogrammierung 6
K Mit Java-MailAPI dir Verfügbarkeit eines SMTP-Servers prüfen Netzwerkprogrammierung 4
J while-Schleife / Abbruchbed. beim Einlesen eines Streams Netzwerkprogrammierung 4
J Länge eines Streams Netzwerkprogrammierung 4
T Timeout eines KSOAP-Calls Netzwerkprogrammierung 5
G Info eines Webseites kopieren Netzwerkprogrammierung 16
J Antwort eines Soaprequests parsen mittels org.apache.soap Netzwerkprogrammierung 2
E Möglichkeit zum Timeout eines Process Netzwerkprogrammierung 7
T Erstellung eines Proxy Netzwerkprogrammierung 11
T Pfad eines Servlets rausfinden Netzwerkprogrammierung 2
O Einbinden eines java-servers Netzwerkprogrammierung 9
C Übergabe eines Datensatzes (Übergabestruktur) Netzwerkprogrammierung 12
G Verzeichnis eines Rechners übers Netzwerk auslesen Netzwerkprogrammierung 5
B Problem mit der Ausgabe eines Strings an SocketOut Netzwerkprogrammierung 4
G InputStreams gezielt ansteuern? Netzwerkprogrammierung 5
G Servlets und InputStreams Netzwerkprogrammierung 4

Ähnliche Java Themen


Oben