Hallo,
ich mache zur Zeit meine ersten Gehversuche mit JAVA.NIO und schreibe mir gerade ein kleines Beispiel. In folgendem Quellcode Schnipsel versuche ich eine Nachricht von einem Server zu empfangen und danch eine andere zurück zu schicken.
Allerdings scheint die Zeile buf=charset.encode("Servus Server! Und danke für die Verbindung"); ihre Wirkung zu verfehlen. Der Buffer ist danach leer. Der Server empfängt danach den alten (?) Inhalt. Den kompletten Quellcode findet ihr im Anhang. Bitte entschuldigt den noch etwas unübersichtlichen (und sinnlosen) Code. Ich bin noch am testen
ich mache zur Zeit meine ersten Gehversuche mit JAVA.NIO und schreibe mir gerade ein kleines Beispiel. In folgendem Quellcode Schnipsel versuche ich eine Nachricht von einem Server zu empfangen und danch eine andere zurück zu schicken.
PHP:
Charset charset = Charset.forName("ISO-8859-1");
try{
SocketChannel channel=SocketChannel.open(
new InetSocketAddress("localhost",BiDirektionaleChannels_S181.PORT));
ByteBuffer buf= ByteBuffer.allocate(1024);
channel.read(buf);
buf.flip();
CharBuffer cbuf=charset.decode(buf);
System.out.println("Client: Habe Servernachricht empfangen:\t"+cbuf);
buf.clear();
buf=charset.encode("Servus Server! Und danke für die Verbindung");
buf.flip();
channel.write(buf);
channel.close();
System.out.println("Client: Habe Server geantwortet und bin fertig :)");
buf.rewind(); //spult zum erneuten Lesen zurück
CharBuffer sentMessage=charset.decode(buf);
System.out.println("\tNachricht:"+sentMessage);
} catch (IOException ioe){ioe.printStackTrace();}