lesen vom Client geht nicht

Status
Nicht offen für weitere Antworten.
M

michael p.

Gast
Hallo, frohes neues Jahr euch allen,

ich habe einen Server und einen Clienten für eine Bücherverwaltung
programmiert. Wenn ich dem Server nun den Befehl schicke ein neues Buch zu speichern,
dann startet er die Speicherroutine, aber wenn ich ihm dann das Buch schicke, kriegt der Server
das nicht.


Das was ich nicht verstehe ist, wieso ich ihm das Kommando zum Speichern schicken kann und er es auch bekommt
Code:
	public void writeToServer(int command){
		
		try{
			output.write(command);
			output.write("\n");//->ist immer ein BufferedWriter
			output.flush();
		}
		
		catch(IOException ie){
			
			gui.errorMessage("I/O Verbindung konnte nicht hergestellt werden");
			
		}
	}

aber wenn ich ein Buch schreibe nimmt der Server es nicht an
Code:
	public void writeBookToServer(Book book){
		
		try{
			
			output.write(book.toString(),0,book.toString().length());
			output.write("\n");
			output.flush();
		}
		
		catch(IOException ie){
			
			gui.errorMessage("I/O Verbindung konnte nicht hergestellt werden");
		}
		
	}


Hier noch die Methoden auf der Serverseite
Code:
//das geht anscheinend
	public int readFromClient(){
		
		try{
			
			int command=Integer.valueOf(input.read());//-> ist immer ein BufferedReader
			
			return command;
			
		}
		
		catch(IOException ie){
			
			System.out.println("I/O Verbindung konnte nicht hergestellt werden");
			Thread.currentThread().interrupt();
			return -1;
		}
		
		
	}

//und ab hier geht's nicht

	private Book readBook(String b){
		System.out.print("Hallo");
		System.out.println(b);
		String[]bb=b.split("_");
		System.out.print(bb[0]);
		System.out.println(bb.length);
		Book book=new Book();
		book.setAuthor(bb[0]);
		book.setTitle(bb[1]);
		book.setDate_of_publication(new Integer(bb[2]));
		book.setPublisher(bb[3]);
		book.setPrinting(new Integer(bb[4]));
		book.setGenre(bb[5]);
		book.setISBN(new Long(bb[6]));
		book.setKeywords(bb[7]);
		
		return book;
		
	}
	
	public Book readBookFromClient(){
		
		try{
			String b="";
			while((b=input.readLine())==null);
			Book book=readBook(b);
			return book;
		}
		
		catch(IOException ie){
			
			System.out.println("I/O Verbindung konnte nicht hergestellt werden");
			Thread.currentThread().interrupt();
			return null;
			
		}
		
	}

Also ich steh zurzeit total auf dem schlauch
kann mir da jemand vielleicht helfen ?

Gruß michael
 
G

Guest

Gast
ja eigentlich sollte readLine() ja sowieso blockieren,solange da nichts ankommt.
Da das aber ohne while-Schleife nicht funktioniert hat, hab ichs halt mit einer versucht.
Und es geht immer noch nicht, es wird eine ArrayIndexOutOfBoundsException geworfen,
wenn die readBook()-Methode versucht ein Buch-Objekt zu erstellen.
in einem anderen Versuch ging das hier:
Code:
    String s;
     try
     {
       while ((s = in.readLine()) != null)
          System.out.println ("> " + s);
     }
 
M

michael p.

Gast
sorry hab im Beitrag über diesem hier meinen Namen nicht geschrieben :oops:
 

Mentor49

Mitglied
Code:
public Book readBookFromClient()
{
      try
      {
         String line;
         while (line = input.readLine())
         {
           if (line != null)
           {
             break;
           }
         }
         return readBook(line);
      }
      catch(IOException ie)
      {
         System.out.println("I/O Verbindung konnte nicht hergestellt werden");
         Thread.currentThread().interrupt();
         return null;
      }
   }
Versuchs mal so ;o
 
G

Guest

Gast
ja aber readLine() gibt doch einen String zurück ? Eclipse gibt da bei mir sofort einen Fehler aus.
Habs in
Code:
while ((line = input.readLine())!=null)
umgewandelt, aber funktioniert auch nicht ???:L
Es kommt immer noch der selbe Fehler [/code]
 

michael p

Mitglied
Hab bloß das Beispiel von Mentor49 versucht und dann gibt mir Eclipse
zurück, dass String nicht in boolean umgewandelt werden kann

Ansonsten kommt bei mir eine ArrayIndexOutOfBoundsException bei readBook,
das ein Book aus einem String macht, da readBook aus irgendeinem Grund
nur "" bekommt und der Aufruf von bb[1] u.s.w. größer ist als der Index des Arrays
Code:
String[]bb=b.split("_"); 
Book book=new Book();
book.setDateOfPublication(bb[2]);

bloß ich verstehe echt nicht, wieso readLine() nicht blockiert.
Denn read() blockiert vorher, da der Server ja vorher über readFromClient() erfolgreich den Befehl bekommt,
dass ein neues Buch hinzugefügt werden soll.
 

musiKk

Top Contributor
michael p hat gesagt.:
Hab bloß das Beispiel von Mentor49 versucht und dann gibt mir Eclipse
zurück, dass String nicht in boolean umgewandelt werden kann
Das stimmt. Da muss in diesem Beispiel ein true rein und das read in den Schleifenkörper. Ich persönlich bevorzuge allerdings die Methode, die du auch verwendet hast, also
Code:
while ((line = input.readLine())!=null)

bloß ich verstehe echt nicht, wieso readLine() nicht blockiert.
Denn read() blockiert vorher, da der Server ja vorher über readFromClient() erfolgreich den Befehl bekommt,
dass ein neues Buch hinzugefügt werden soll.
Ist vielleicht noch das \n, mit dem du deinen Command abschließt, in der Leitung? Ich seh nur ein einzelnes read() bei dir.
 

michael p

Mitglied
ne eigentlich ist "\n" schon drin, hab es in allen möglichen Variationen versucht.
In der
1. toString-Methode "\n" am Schluss
2. einzeln "\n" nach dem Buch schicken
3. newLine Methode des BufferedReaders.
4. 1. und 2. zusammen

immer kommt ein und der selbe Fehler
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
B Versuch mit Socket etwas zu lesen und zu schreiben Netzwerkprogrammierung 15
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
OnDemand Json Objekt leeres Array beim lesen Netzwerkprogrammierung 9
I Offene Verbindungen lesen(Ressourcenmonitor lesen) Netzwerkprogrammierung 2
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Gerenderte Website nach der ausführung von JavaScript als HTML Code aus lesen Netzwerkprogrammierung 4
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
M TCP Verbindung Byte-weise lesen? Netzwerkprogrammierung 5
D GZIP InputStream lesen ohne zu encoden Netzwerkprogrammierung 1
L FTP Lesen einer Datei vom Server - Aufgehangen Netzwerkprogrammierung 0
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
B Socket Aufhängen beim Lesen Netzwerkprogrammierung 4
C Socket Probleme beim Lesen und Schreiben aus/in einen Socket Netzwerkprogrammierung 2
D Aus einer URL die Dateien lesen Netzwerkprogrammierung 5
P FTP Nochmal wachsende Datei per FTP lesen Netzwerkprogrammierung 9
P Wachsende Datei per FTP lesen Netzwerkprogrammierung 2
K Byte für Byte aus InputStream lesen Netzwerkprogrammierung 5
J VideoStream von Webseite lesen/speichern Netzwerkprogrammierung 7
J UDP port packete lesen,wenn dieser besetzt ist Netzwerkprogrammierung 3
S Thread, Daten vom Socket lesen Netzwerkprogrammierung 2
Z File über Socket lesen Netzwerkprogrammierung 3
W aktuelle Datum vom Server lesen! Netzwerkprogrammierung 5
T Inputstream -> verschiedene Objekte lesen Netzwerkprogrammierung 3
K Socket Daten lesen ohne Längenangabe Netzwerkprogrammierung 19
T Socket Nullterminierten String lesen Netzwerkprogrammierung 4
L Java über php datei lesen? Netzwerkprogrammierung 18
Y Problem mit ObjectInputStream beim lesen vom Socket Netzwerkprogrammierung 10
T ServerSocket bleibt beim lesen von Input hängen Netzwerkprogrammierung 2
K Vom Socket lesen wenn das Gegenüber schon disconnected ist? Netzwerkprogrammierung 12
M Bytes aus Stream lesen Netzwerkprogrammierung 3
G unbekannte Zeichen beim senden und lesen Netzwerkprogrammierung 2
J Mit der File Api Dateien von anderen Rechnern lesen ? Netzwerkprogrammierung 3
F Netzwerktraffic lesen Netzwerkprogrammierung 16
E RTP Packet lesen - Byte Problem 0xFFFFFF80 statt 0x80 Netzwerkprogrammierung 7
S mit HttpClient Seiteninhalt lesen Netzwerkprogrammierung 8
R Mittels BufferedReader Objekte lesen? Netzwerkprogrammierung 5
G ProxySettings aus Internet Explorer lesen Netzwerkprogrammierung 8
T Sockets Verständnisfrage: abwechelnd lesen-schreiben Netzwerkprogrammierung 4
N Von nem Server per getInputStream in meheren Varianten lesen Netzwerkprogrammierung 13
thE_29 Vor dem ersten Posten bitte lesen! Netzwerkprogrammierung 0
S socket aus hashmap lesen -> geschlossen Netzwerkprogrammierung 2
J Vom BufferedReader lesen -> hängt ohne Fehler,ohne Except Netzwerkprogrammierung 2
N Username aus Java lesen Netzwerkprogrammierung 2
A Exception bei Cookie lesen Netzwerkprogrammierung 2
C POST-Parameter aus HTML-Script lesen Netzwerkprogrammierung 1
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
T Jetty mit Client-Zertifikat nur bei spezifischer URL Netzwerkprogrammierung 1
J Einlesen von Servernachrichten von TCP-Client Netzwerkprogrammierung 17
J Client-Server und SOAP Netzwerkprogrammierung 23
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
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
T Client zu Client Kommunikation Netzwerkprogrammierung 2
D Slf4j - Logging - Client-Server Architektur 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
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
ruutaiokwu ständig "sender address rejected: improper use of smtp" bei smtp-client Netzwerkprogrammierung 4
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
A Client Client Übertragung Netzwerkprogrammierung 12
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
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
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
U Socket Client mit hash authentifizieren Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
J Client - Serversocket Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
N Fragen zu Sockets Client Netzwerkprogrammierung 3
F Extasys TCp Client extends Funktion Netzwerkprogrammierung 0
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
O Client zwischen XML und JSON auswählen lassen Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
A Socket Wie ein einfacher Multithreads Service mit Telnet als Client mit Observable/Observer gelöst.... Netzwerkprogrammierung 0
K C# Server - Android Client Netzwerkprogrammierung 0

Ähnliche Java Themen


Oben