You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by mw...@apache.org on 2009/11/18 03:30:58 UTC
svn commit: r881646 - in
/mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/spdy/client: ./
SpdyTestClient.java
Author: mwebb
Date: Wed Nov 18 02:30:58 2009
New Revision: 881646
URL: http://svn.apache.org/viewvc?rev=881646&view=rev
Log:
Simple Test client for the SPDY protocol. Not for production use.
Added:
mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/spdy/client/
mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/spdy/client/SpdyTestClient.java
Added: mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/spdy/client/SpdyTestClient.java
URL: http://svn.apache.org/viewvc/mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/spdy/client/SpdyTestClient.java?rev=881646&view=auto
==============================================================================
--- mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/spdy/client/SpdyTestClient.java (added)
+++ mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/spdy/client/SpdyTestClient.java Wed Nov 18 02:30:58 2009
@@ -0,0 +1,72 @@
+package org.apache.mina.spdy.client;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.net.InetSocketAddress;
+import java.nio.ByteBuffer;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.future.IoFutureListener;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.spdy.SpdyServer;
+import org.apache.mina.spdy.messages.control.HelloControlFrame;
+import org.apache.mina.spdy.messages.control.NoopControlFrame;
+import org.apache.mina.spdy.messages.data.SpdyDataFrame;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SpdyTestClient {
+
+ private static final Logger log = LoggerFactory.getLogger(SpdyTestClient.class);
+
+ public SpdyTestClient( int port ){
+
+ NioSocketConnector connector = new NioSocketConnector();
+
+ connector.setHandler( new SpdyClientHandler() );
+
+ ConnectFuture connFuture = connector.connect( new InetSocketAddress(port));
+ connFuture.addListener( new IoFutureListener<ConnectFuture>(){
+ public void operationComplete(ConnectFuture future) {
+ log.info("Connected");
+
+ IoSession session = future.getSession();
+ IoBuffer data = IoBuffer.allocate(0);
+ NoopControlFrame noop = new NoopControlFrame(1, (byte)0, 0, data);
+ session.write(noop.frameToIoBuffer());
+
+ IoBuffer helloBuffer = IoBuffer.allocate(20);
+ helloBuffer.putShort((short)0);
+ helloBuffer.putShort((short)2);
+ helloBuffer.putInt(HelloControlFrame.HELLO_BANDWIDTH_TO_YOU_ID);
+ helloBuffer.putInt(100);
+ helloBuffer.putInt(HelloControlFrame.HELLO_BANDWIDTH_FROM_YOU_ID);
+ helloBuffer.putInt(200);
+ helloBuffer.flip();
+ HelloControlFrame hello = new HelloControlFrame(1, (byte)0, 20, helloBuffer);
+ session.write(hello.frameToIoBuffer());
+
+ try{
+ File file = new File("porsche.jpg");
+ FileInputStream fin = new FileInputStream(file);
+ ByteBuffer fileData = ByteBuffer.allocate((int)file.length());
+ fin.getChannel().read(fileData);
+ IoBuffer fileBuffer = IoBuffer.wrap(fileData);
+
+ SpdyDataFrame dataFrame = new SpdyDataFrame(12345, (byte)0, (int)file.length(), fileBuffer );
+ session.write(dataFrame.frameToIoBuffer() );
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+
+ public static void main(String[] args) {
+
+ new SpdyTestClient( SpdyServer.PORT );
+ }
+}