[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