Network file transfer
Norman Maurer
norman.maurer at googlemail.com
Tue Oct 11 04:04:28 EDT 2011
You cannot write a byte[] to the Channel. Wrap it via
ChanneBuffers.wrappedBuffers(byte[]);
See:
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/ChannelBuffers.html
I think you really should take the time and read the UserGuide again...
Bye,
Norman
2011/10/11 metalstorm <metalheadstorm at gmail.com>:
> Right i've had a look, and god my head hurts lol.
>
> ServerPipelineFactory and ClientPipelineFactory:
>
> ...
> public ChannelPipeline getPipeline() throws Exception
> {
> // Create a default pipeline implementation.
> ChannelPipeline pipeline = pipeline();
>
> // Add the text line codec combination first,
> // pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192,
> // Delimiters.lineDelimiter()));
> // pipeline.addLast("decoder", new StringDecoder());
> // pipeline.addLast("encoder", new StringEncoder());
>
> pipeline.addLast("executor", executionHandler);
>
> // and then business logic.
> pipeline.addLast("handler", new TimeServerHandler());
>
> return pipeline;
> }
>
> TimeClienthandler:
>
> public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
> throws IOException
> {
>
> ChannelBuffer buf = (ChannelBuffer) e.getMessage();
> byte[] line;
> if (buf.hasArray())
> {
> line = buf.array();
> } else
> {
> line = new byte[buf.capacity()];
> buf.getBytes(0, line);
> }
> FileOutputStream out = new FileOutputStream("testFile.txt");
> out.write(line);
>
> // close the FileOutputStream once you are done
> out.close();
>
> TimeServerHandler:
>
> @Override
> public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent
> e) throws IOException
> {
>
> Channel ch = e.getChannel();
>
> File myFile = new File("E:\\Downloads\\DummyFile.txt");
> if (myFile.exists())
> {
>
> System.out.println("got file: " + myFile.getName());
> FileInputStream in = new FileInputStream(myFile);
>
> int bytes = 0;
> byte[] buffer = new byte[8192];
> int len;
>
> while ((len = in.read(buffer)) > 0)
> {
> // ch.write(buffer, 0, len);
> ch.write(buffer);
> bytes += len;
> }
> }
>
>
> Server throws this error:
>
> got file: DummyFile.txt
> 11-Oct-2011 09:00:22 org.jboss.netty.channel.socket.nio.NioWorker
> WARNING: Unexpected exception in the selector loop.
> java.lang.IllegalArgumentException: unsupported message type: class [B
> at
> org.jboss.netty.channel.socket.nio.SocketSendBufferPool.acquire(SocketSendBufferPool.java:55)
> at org.jboss.netty.channel.socket.nio.NioWorker.write0(NioWorker.java:461)
> at
> org.jboss.netty.channel.socket.nio.NioWorker.writeFromTaskLoop(NioWorker.java:393)
> at
> org.jboss.netty.channel.socket.nio.NioSocketChannel$WriteTask.run(NioSocketChannel.java:269)
> at
> org.jboss.netty.channel.socket.nio.NioWorker.processWriteTaskQueue(NioWorker.java:268)
> at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:199)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> 11-Oct-2011 09:00:23 org.jboss.netty.channel.socket.nio.NioWorker
> WARNING: Unexpected exception in the selector loop.
> java.lang.NullPointerException
> at org.jboss.netty.channel.socket.nio.NioWorker.write0(NioWorker.java:504)
> at
> org.jboss.netty.channel.socket.nio.NioWorker.writeFromTaskLoop(NioWorker.java:393)
> at
> org.jboss.netty.channel.socket.nio.NioSocketChannel$WriteTask.run(NioSocketChannel.java:269)
> at
> org.jboss.netty.channel.socket.nio.NioWorker.processWriteTaskQueue(NioWorker.java:268)
> at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:199)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
>
> Am i going about this the right way? please say i'm close :)
>
> --
> View this message in context: http://netty-forums-and-mailing-lists.685743.n2.nabble.com/Network-file-transfer-tp6875434p6879990.html
> Sent from the Netty User Group mailing list archive at Nabble.com.
> _______________________________________________
> netty-users mailing list
> netty-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/netty-users
>
More information about the netty-users
mailing list