Vom Server per Socket Empfangen, aber wieviel Bytes?

Status
Nicht offen für weitere Antworten.

Mondmann1

Mitglied
Hello.
Ich habe eine Socket Kommunikation mit einem Server.
Ich sende was und bekomme natürlich was zurück.

Dafür verwende ich read().
Den Empfangspuffer muss ich vorher festlegen, also:

Code:
reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
char []cread= new char[1024];
reader.read(cread,0,1024);

Jetzt ist der Buffer aber auf jeden Fall 1024 Bytes groß, auch wenn ich nur 100 Bytes empfange.
Ich möchte aber, daß ich den maximalen Buffer festlege, in diesem Falle 1024 und wenn ich nur 100 Empfange, nachher auch einen String habe der 100 Zeichen groß ist.

ZB, in C knallt der Server mir ein '\0' hintendran und das ist dann der Stringende.
Ergo 100 Zeichen.

Wie mache ich das mit Java?

Danke schonmal Mondmann
 

Bleiglanz

Gesperrter Benutzer
schau mal den Rückgabewert von read an...

Code:
    public static String readToEnd(final InputStream in, final String charset)
            throws IOException {
        final BufferedReader reader = new BufferedReader(new InputStreamReader(in, charset));
        final StringBuilder result = new StringBuilder(8192);
        final char[] charBuffer = new char[8192];
        int readChars = 0;
        while (-1 != (readChars = reader.read(charBuffer))) {
            result.append(charBuffer, 0, readChars);
        }
        reader.close();
        return result.toString();
    }
 

Bleiglanz

Gesperrter Benutzer
was ist denn das für ein Server?

und was schickt der??

wenn der Server in C geschrieben ist und der nach \0 einfach weitersendet dann musst du das in deinem Java-Client manuell abfangen...
 

Mondmann1

Mitglied
Yupp ein in C++ geschriebener Server.
Er sendet zwar die ganze 1023 Bytes, aber er schickt zB. "HALLO DU DA\0\0\0\0... "und füllt den Rest auf mit '\0'.
Aber er sendet immer 1023 Bytes.

Also von Hand abfangen?

Boah ich frag mich echt ob Java das richtige ist für mein Plattformunabhängiges Projekt.
Das Soll unter Linux genauso laufen wie unter MAC OS...

Mondmann
 

Bleiglanz

Gesperrter Benutzer
Was kann Java dafür, wenn der Server nicht richtig arbeitet?

Und: bei einem C++ Server mir irgendeinem selbstgestrickten Protokoll müsstest du die Daten immer manuell verarbeiten...
 

Mondmann1

Mitglied
Der Server arbeitet schon richtig.
Ich hab eben noch den Knoten im Gehirn, daß '\0' String Ende bedeutet.
Somit habe ich in C sofort meinen entsprechenden String.
So muss ich jetzt jedes Zeichen durchwühlen, vergleichen und bei '\0' das Bytearray abtrennen. Die Zählvariable die mitläuft zeigt mir die Stringlänge an.
Wenn ich ne Entsprechende Anfrage sende und ich bekomme 500x 1023 Bytes an den Latz geknallt bricht die Performance ganz schön ein...
Naja mal sehen...

Vielen Dank trotzdem.

Mondmann
 

Bleiglanz

Gesperrter Benutzer
Was soll daran richtig sein dass der Server soviele \0en schickt

klar: wenn du den ganzen Schrott in einen C/C++ String legst, dann wird der richtig weiterverarbeitet (und die restlichen \0en belegen sinnlos Speicher der nicht weiter stört...)

wenn der Server 500 x 1023 Bytes schickt dann musst du die wohl alle lesen, was anderes bleibt dir gar nicht übrig; von der Performance dürfte das nix ausmachen
 

Mondmann1

Mitglied
naja ok.
Ich jerne ja schon kräftig dazu. Wenn auch auf Eure /Deine Kosten.
Aber ich empfinde es als extrem schwierig von C nach Java zu kommen.Vor allem was die Stringberarbeitung angeht.
Die schönen Zeiger habe ich ja in Java leider auch nicht:)

Vergelts Got tund dankeschön.

Mondmann
 
J

JayJay

Gast
PS: Schonmal was von Ansi C++ gehört?

musst ddas teuk nur unter linux nochmal kompilieren ;)
 

Mondmann1

Mitglied
hm...kannste mir das mal genauer erklären?
Ich bräuchte ja dann alle Bibiotheken usw. auf den linux/MAC Rechner....
Oder wie funktioniert das?

Mondmann
 
G

Gast

Gast
warum lässt du deinen C Server auch so viele \0 senden?
sende eine und feierabend!

dann brauchst in Java bloß noch gucken, wie viele bytes gesendet wurden, davon nimmst das letzte weg (deine \0) und wandelst die restlichen in einen string um....
fertig
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Socket Kann ein Socket server 2 dimensionale Arrays empfangen und versenden? Netzwerkprogrammierung 3
M TCP Socket und Server int senden und empfangen Netzwerkprogrammierung 6
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
D Socket server auf Smartphone Netzwerkprogrammierung 9
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
A Socket Socket Server netcat Netzwerkprogrammierung 1
Shams Anfängerfrage zu Server-Socket-Kommunikation Netzwerkprogrammierung 2
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
precoc Server Socket Start / Stop Netzwerkprogrammierung 5
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
M SSl Socket Server und openssl key Netzwerkprogrammierung 3
A Socket Server: Message an verschiedene Clients senden Netzwerkprogrammierung 4
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
Y client server socket via internet Netzwerkprogrammierung 8
A Socket Server-Socket wiederholt starten Netzwerkprogrammierung 3
E Socket HTTP-Server Netzwerkprogrammierung 6
Y server client socket verbindung übers internet aufbauen Netzwerkprogrammierung 8
S SSL Socket zu IRC Server aufbauen? Netzwerkprogrammierung 10
N Socket File über Socket vom Server an Client versenden Netzwerkprogrammierung 15
H Socket Socket verbindung mit einem TeamSpeak2 Server Netzwerkprogrammierung 5
P über Socket Kommando an Win2000-Server absetzen Netzwerkprogrammierung 12
N Über Socket an Linux-Server Kommandos absetzen? Netzwerkprogrammierung 4
B Server socket springt nicht gleich an Netzwerkprogrammierung 3
C Verbindung zum Server prüfen mit einem vorhandenem Socket Netzwerkprogrammierung 4
W Socket Client-Server Verbindung. Wie Strings senden? Netzwerkprogrammierung 6
A http request per socket an apache server Netzwerkprogrammierung 5
D Server Socket läuft nicht -> java.net.SocketException: Netzwerkprogrammierung 4
D Habe 2 Probleme: Input eingabe und Multi Socket Server Netzwerkprogrammierung 2
R Websockets oder server sent events? Netzwerkprogrammierung 2
W Windows 2019-Server Dienste starten unter Nutzer Netzwerkprogrammierung 1
F http Post auf einen Grafana Server Netzwerkprogrammierung 3
E Server mit GUI Netzwerkprogrammierung 4
E FTP FTPS Server gibt Fehlernachricht "522 SSL/TLS required on the data channel" zurück Netzwerkprogrammierung 1
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
Eigenen Rechner als Server? Netzwerkprogrammierung 16
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
J Datei Download vom Server Netzwerkprogrammierung 8
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
K Threads/Server/telnet Fehler Netzwerkprogrammierung 2
J Multithreaded-Server Netzwerkprogrammierung 21
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
L30nS RMI RMI-Server kann Dialog nicht volkommen anzeigen Netzwerkprogrammierung 2
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
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
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
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
F NodeJs-Server auf Firebase hosten ? 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
H HTTP Glassfish (v5) Application Server - Bibliothek zur Verfügung stellen Netzwerkprogrammierung 4
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
P TCP-Server Netzwerkprogrammierung 1
F Server für Java Applikationen Netzwerkprogrammierung 16
H Einfacher Server funktioniert nicht Netzwerkprogrammierung 1
G Server-Client IO Problem Netzwerkprogrammierung 6
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
L Socket Wie kann ich checken ob ein User eine Nachricht per Outputstream an den Server gesendet hat? Netzwerkprogrammierung 1
T Jetty Server LOGGING Netzwerkprogrammierung 1
L Strings an Server senden und in MYSQL speichern? Netzwerkprogrammierung 3
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
T server empfängt nur 1 Buchstaben vom String Netzwerkprogrammierung 1
S Spiel mit Server programmieren Netzwerkprogrammierung 2
N Post u Head Request an Server Netzwerkprogrammierung 4
J Socket Ein Chat Server Tutorial Netzwerkprogrammierung 8
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
J Socket Tutorial zu Multiplayer Server schreiben? Netzwerkprogrammierung 5
S Java Chat Server Netzwerkprogrammierung 8
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
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
D Socket Message an einen Server senden? Netzwerkprogrammierung 8
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
KaffeeFan Programmierung mit Cloud-Server Netzwerkprogrammierung 0
L Socket Problem mit Server Netzwerkprogrammierung 1
cezary Socket Paralleler Server ? Netzwerkprogrammierung 1
I Socket Leicht zu DDosender Server Netzwerkprogrammierung 4
agent47 HTTPs Server Netzwerkprogrammierung 5
J Chat Server starten über GUI problem Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben