Java.nio Server, Java.io Client

Status
Nicht offen für weitere Antworten.

HawkofHell

Mitglied
Wie kann ein Client in java.io.* aussehen, der Daten von einem java.nio.* empfängt?

Ich habe momentan große Probleme das java.nio.* Konzept von
'Fülle einen 2 Byte großen ByteBuffer'
'Lese daraus die Länge der Daten'
'Lese den Rest (Fülle einen entsprechend großen ByteBuffer)'

in ein .io Programm umzuschreiben, Ideen? Oo
 
T

tuxedo

Gast
Übertragen werden doch eh immer rohe Bytes. Müsste doch also möglich sein das gleiche in IO zu machen? Nur arbeitest du da eben mit einfach Input- und OutputStreams.

Versteh dein Problem also nicht so ganz. Vielleicht kannst du etwas ins Detail gehen und ein exaktes Problem schildern.?

- Alex
 

HawkofHell

Mitglied
Also...

Code:
public class Connection extends Thread {
	public Socket socket;  //  @jve:decl-index=0:
	public DataInputStream in;
	public PrintStream out;  //  @jve:decl-index=0
	public boolean doRun = true;
	byte[] input = new byte[2];
	ByteBuffer bInput = ByteBuffer.allocate(2);
	ByteBuffer[] bbOutput = new ByteBuffer[] {   ByteBuffer.allocate(2),ByteBuffer.allocate(1),ByteBuffer.allocate(400)};
	ByteBuffer bbLength = ByteBuffer.allocate(1);

	public Connection(int port, String hostname) throws IOException
	{
	   // Erzeuge einen Socket und baue eine Verbindung 
	   // zum angegebenen Host und der angegebenen Portnummer auf. 
		try
		{
			this.socket = new Socket(hostname, port);
			in = new DataInputStream(socket.getInputStream());
			out = new PrintStream(socket.getOutputStream());
		} catch (IOException e)
		{
			System.err.println("Verbindung nicht möglich");
		}
	}

        public void run()
	{
		while(doRun)
		{
			try
			{
				while (in.read (input)>0) 
				{
					bInput.put(input);
					bInput.flip();
					short zeichen = 0;
					try
					{
						zeichen = bInput.getShort();
					}
					catch(java.nio.BufferUnderflowException e) // Zeichen < 127
					{
						try
						{
							zeichen = (short)bInput.get();
						}
						catch(Exception ee)	// Keine Zahl?!
						{
							zeichen = 0;
						}
					}
					
					if(zeichen!=0)
					{
						try
						{
							byte[] flag = new byte[1];
							byte[] content = new byte[zeichen-1];
							ByteBuffer[] dataBufs = {ByteBuffer.allocate(1), ByteBuffer.allocate(zeichen-1)};
							
							while(in.read (flag)>0)
							{
								
							}
							while(in.read(content)>0)
							{
								
							}
							
							dataBufs[0].put(flag);
							dataBufs[0].flip();
							
							//TODO Was mit machen 
							byte bBefehl = dataBufs[0].get();
							String sParameter = EncodeDecode.Byte2ASCII(dataBufs[1]);
							
							if(zeichen==-1 || zeichen == 0)
								break;
						}
						catch(IllegalArgumentException e)
						{
							System.err.println(e.toString());
						}
					}
				}
			}
			catch(IOException e)
			{}
		}
	}

Wir haben ein Datenpäckchen vom Server mit
[LÄNGE][FLAG][CONTENT]
mit der Größe von jeweils 2 Byte - 1 Byte - Länge-1 Byte

Java.nio:
ByteBuffer mit der Größe 2 initialisieren, den befüllen, Länge 'errechnen', dann jeweils ByteBuffer bereitstellen, rest lesen.

Java.io:
Byte[2] befüllen, Short Content auslesen, restliche Byte-Arrays befüllen, in einen ByteBuffer stecken.

Aber:
Der Client liest so nichts, zumindest nicht das, was ich will. Die umwandlung von ByteBuffer später in ASCII schlägt fehl und eigentlich weiß ich auch nicht so ganz, ob das mit dem bytearray einlesen so überhaupt geht. Der .nio Server zeigt mir auch nicht an, dass ein Client angemeldet ist bzw. nur selten, warum auch immer.
 

anfänger15

Bekanntes Mitglied
Ich würde dafür einen InputStream nehmen und dort mit read(byte[] b) die bytes lesen. ByteBuffer ist ja sowiso wieder java.nio
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
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
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
F Server für Java Applikationen Netzwerkprogrammierung 16
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
S Java Chat Server Netzwerkprogrammierung 8
M Java Eingabe auf FTP Server übergeben Netzwerkprogrammierung 4
M Socket Java Server: NullPointerException Netzwerkprogrammierung 4
J Java Server empfängt php inhalt nicht Netzwerkprogrammierung 1
X Mit Java eine Applikation auf einem anderen Windows Rechner (Windows Server 2008) starten Netzwerkprogrammierung 1
F Socket Java Server mit Android App, Antwort vom Server an App Netzwerkprogrammierung 5
F Java Server Scanner oder InputStream kann nicht gelsesen werden! Netzwerkprogrammierung 6
H Socket Java | Server sendet Nachricht nur wenn vorher eine JOptionPane-Nachricht ausgegeben wurde. Netzwerkprogrammierung 2
G Multiple Clients and one Server --> java.lang.NullPointerException Netzwerkprogrammierung 1
E Java Server übers Internet erreichen Netzwerkprogrammierung 4
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
A Java Server - IOS Client Applikation Netzwerkprogrammierung 20
C Kostenloser Java-Server? Netzwerkprogrammierung 25
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
P FTP Server mit Java, möglich ? Netzwerkprogrammierung 4
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
F Java SMTP Server Netzwerkprogrammierung 9
J HTTP Java Client / Server Internet - Webshare ?! Netzwerkprogrammierung 9
S Socket Java Server StreamCorruptedException Netzwerkprogrammierung 7
L C# WCF Server und Java Client? Netzwerkprogrammierung 2
N Socket Java server c# client problem Netzwerkprogrammierung 7
P Java Programm als Dienst auf Server Netzwerkprogrammierung 11
M client server in java Netzwerkprogrammierung 4
P Java Web Server Netzwerkprogrammierung 3
D Umwandlung von Java WebStart zu Java Server Pages Netzwerkprogrammierung 6
W Terminal-Server (Windows 2003) und Java Netzwerkprogrammierung 9
E java.net.SocketException: Unexpected end of file from server Netzwerkprogrammierung 2
H Mit Java ein JPG auf einem Server öffnen. Netzwerkprogrammierung 7
I Java Client - C Server Netzwerkprogrammierung 8
A Java-Programm auf einem Server laufen lassen Netzwerkprogrammierung 9
R Kommunikationsproblem zwischen JAVA-client und C-Server Netzwerkprogrammierung 5
M Java Server mit verschiedenen Kommunikationsmöglichkeiten Netzwerkprogrammierung 6
E Java Server via Swing offline setzen Netzwerkprogrammierung 4
M Java XML-RPC Server - PHP XML-RPC Client ? Netzwerkprogrammierung 8
F Java Client-Server-Client Verbindung Netzwerkprogrammierung 9
J Server soll Zugriff auf Java Programm ermöglichen Netzwerkprogrammierung 3
R Java Applikation als Client ,Servlet als Server: Problem? Netzwerkprogrammierung 3
D Server Socket läuft nicht -> java.net.SocketException: Netzwerkprogrammierung 4
N eigener Java-Server => PHP einbauen Netzwerkprogrammierung 67
S Kommunikation Fortran <-> Java auf Client-Server-Archi Netzwerkprogrammierung 2
S MySQL, PHP, Perl Support in einem Java HTTP Server? Netzwerkprogrammierung 7
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
M HTTP Let's Encrypt und Java Trust-Store Netzwerkprogrammierung 6
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D path-Variablen in eine URL hinzufügen mit Java 1.8 Netzwerkprogrammierung 2
x46 Java SSLContext erstellen mit SSL-Zertifikat Netzwerkprogrammierung 1
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
N Java socket Programmierung Filme verschicken Netzwerkprogrammierung 20
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
V Browsergame mit Java(WebSocketServer) als Backend? Netzwerkprogrammierung 5
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
mor16Euro HTTP Php website mit Java aktualisiern Netzwerkprogrammierung 6
T HTTP JAVA Browser Konsolenanfrage(JavaScript) Netzwerkprogrammierung 7
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
J Webserver mit Java schreiben? Netzwerkprogrammierung 4
D JAVA RMI Netzwerkprogrammierung 1
K HTTP Mit Java HTML Codeauslesen um damit zu arbeiten Netzwerkprogrammierung 7
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Bestimmter URL/Certificate per Java immer vertrauen (Trustmanager/HostnameVerifier) Netzwerkprogrammierung 1
T VPN-Verbindung über Java Netzwerkprogrammierung 4
M HTTP PATCH Request mit Java ausführen Netzwerkprogrammierung 2
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
L FTP Java Interpreter unterbindet SSL Handshake Netzwerkprogrammierung 2
C IFrame mit java auslesen Netzwerkprogrammierung 1
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Datensammlung mit Java RMI Netzwerkprogrammierung 0
K Java Jsoup : OnLoad Netzwerkprogrammierung 0
Carres HTTP Vorhandenen Session-ID Cookie von Firefox, Chrome oder IE in Java verwenden Netzwerkprogrammierung 2
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
Z HTTP HTML Element auslesen in Java Netzwerkprogrammierung 1
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
Thallius HTTP HTTPS unter Java 1.6 schlägt fehl Netzwerkprogrammierung 4
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
P Chat in Java Netzwerkprogrammierung 3
C java.net.ConnectException: Operation timed out? Netzwerkprogrammierung 2
T curl request in java umwandeln Netzwerkprogrammierung 4
I Socket Kommunikation C / Java Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
L Java RMI Objekt konsistenz Netzwerkprogrammierung 1

Ähnliche Java Themen


Oben