[jboss-cvs] JBoss Messaging SVN: r3909 - projects/network-benchmark/src/network.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 21 11:54:32 EDT 2008


Author: jmesnil
Date: 2008-03-21 11:54:31 -0400 (Fri, 21 Mar 2008)
New Revision: 3909

Modified:
   projects/network-benchmark/src/network/NIOServer.java
Log:
* read into 2 ByteBuffers and reply with the 2nd ByteBuffer

Modified: projects/network-benchmark/src/network/NIOServer.java
===================================================================
--- projects/network-benchmark/src/network/NIOServer.java	2008-03-21 15:51:19 UTC (rev 3908)
+++ projects/network-benchmark/src/network/NIOServer.java	2008-03-21 15:54:31 UTC (rev 3909)
@@ -1,4 +1,5 @@
 package network;
+
 import java.nio.ByteBuffer;
 import java.nio.channels.SelectionKey;
 import java.nio.channels.Selector;
@@ -33,6 +34,9 @@
       Selector selector = Selector.open();
       server.register(selector, SelectionKey.OP_ACCEPT);
 
+      ByteBuffer buf = ByteBuffer.allocate(NetworkClientTest.MESSAGE_SIZE - NetworkClientTest.RESPONSE_SIZE);
+      ByteBuffer response = ByteBuffer.allocate(NetworkClientTest.RESPONSE_SIZE);
+
       // Wait for something of interest to happen
       while (selector.select() > 0)
       {
@@ -65,9 +69,10 @@
                socket.register(selector, SelectionKey.OP_READ);
             } else if (key.isReadable())
             {
+               response.clear();
+               buf.clear();
                SocketChannel channel = (SocketChannel) key.channel();
-               ByteBuffer buf = ByteBuffer.allocate(NetworkClientTest.MESSAGE_SIZE);
-               int readBytes = channel.read(buf);
+               long readBytes = channel.read(new ByteBuffer[] {buf, response});
                if (readBytes == 0)
                {
                   System.err.println("READ BUFFER UNDERRUN");
@@ -79,10 +84,8 @@
                   // selector.close();
                } else
                {
-                  buf.flip();
-                  buf.position(buf.remaining() - NetworkClientTest.RESPONSE_SIZE);
-                  buf.slice();
-                  if (channel.write(buf) == 0)
+                  response.flip();
+                  if (channel.write(response) == 0)
                   {
                      System.err.println("WRITE BUFFER FULL");
                   }




More information about the jboss-cvs-commits mailing list