File file=new File("E:/Downloads/voicesys.exe");
FileInputStream fis = new FileInputStream(file);
FileChannel channel = fis.getChannel();
long readed = 0;
while(readed != file.length()){
MappedByteBuffer buffer = channel.map(MapMode.READ_ONLY,
0,1024);
buffer.rewind();
readed += buffer.limit();
session.write(buffer);
}
I implemented this coding and i am using this codec IOFilter
cfg.getFilterChain().addLast( "codec",new ProtocolCodecFilter( new
ObjectSerializationEncoder(),new ObjectSerializationDecoder() ));
so the error will occure
i changed MappedByteBuffer instead of MappedByteBuffer ...
please suggest me the suitable codec for this coding
On Fri, Jun 27, 2008 at 4:04 PM, Viktor Balázs <[EMAIL PROTECTED]>
wrote:
> I think this code is working only on localhost, becuase you send the
> serialized File object and not the content of file. The serialized File
> object contain the path of file, so the length is correct. You must write
> the content of file to IoSession. You can use FileChannel to load files to
> ByteBuffer (the code is an example only, I don't tested this):
>
> * File file = new File("any file name");
> > FileInputStream fis = new FileInputStream(file);
> > FileChannel channel = fis.getChannel();
> > long readed = 0;
> > while(readed != file.length()){
> > ByteBuffer buffer = channel.map(MapMode.READ_ONLY, 0,
> > 1024);
> > buffer.rewind();
> > readed += buffer.limit();
> > session.write(buffer);
> > } *
> >
>
>
> 2008/6/27 kalees waran <[EMAIL PROTECTED]>:
>
> > On Fri, Jun 27, 2008 at 1:41 PM, Viktor Balázs <[EMAIL PROTECTED]>
> > wrote:
> >
> > > Do you want to write byte content of file or a "new File(...)" object?
> :)
> > > Or
> > > what is the "file object"? Do you send an example?
> > >
> > > 2008/6/27 kalees waran <[EMAIL PROTECTED]>:
> > >
> > > > i want to send and download bulk file using mina. i am trying to
> write
> > > file
> > > > object in the session.write(fileobject).however i got client side in
> > null
> > > > pointer exception..which codec i want to use to write object in mina
> > > >
> > >
> > public class Client {
> > public static void main(String arg[]){
> >
> > SocketConnector connector = new SocketConnector();
> > connector.setWorkerTimeout(1);
> > SocketConnectorConfig cfg = new SocketConnectorConfig();
> > cfg.getFilterChain().addLast( "logger", new LoggingFilter() );
> > cfg.getFilterChain().addLast( "codec",new ProtocolCodecFilter( new
> > ObjectSerializationEncoder(),new ObjectSerializationDecoder() ));
> > cfg.getFilterChain().addLast("threadPool", new
> > ExecutorFilter(Executors.newCachedThreadPool()));
> > IoSession session;
> > ConnectFuture future = connector.connect(new InetSocketAddress("
> > 192.168.10.197", 9123),
> > new ClientHandler(), cfg);
> > future.join();
> >
> > session = future.getSession();
> >
> > session.getCloseFuture().join();
> >
> > session.close();
> >
> >
> > }
> >
> > > //handler
> > >
> > public void sessionCreated(IoSession session) throws Exception{
> >
> > File f=new File("E:/Downloads/voicesys.exe");
> > System.out.println(f.length());
> > session.write(f);
> > session.write("ksdkosfsd");
> >
> >
> > }
> >
> > ////////////////////server
> >
> > public void messageReceived(IoSession session, Object msg) throws
> Exception
> > {
> >
> > Object o=msg;
> > File f=(File)o;
> > System.out.println(f.length());
> > System.out.println(msg);
> > session.write("hi");
> > session.close();
> > }
> >
> > i have write this code for sending and receiving file
> > now its working fine...i want to know this is the right coding to send
> the
> > file to server bz my work is more challaging work.bz there is the chance
> > 20000 client to sent and download file at a time..even i dont have any
> > clear
> > idea about thread pooling in mina.i wnt to send to voice file the size
> may
> > big...
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > >
> > >
> > >
> > > --
> > > Balázs Viktor
> > > Amkai Kft. (1188 Budapest, Szövet u. 9.)
> > >
> > > Email: [EMAIL PROTECTED]
> > > Jabber: [EMAIL PROTECTED]
> > > MSN: [EMAIL PROTECTED]
> > > Telefon: +36-30/6755532
> > >
> >
>
>
>
> --
> Balázs Viktor
> Amkai Kft. (1188 Budapest, Szövet u. 9.)
>
> Email: [EMAIL PROTECTED]
> Jabber: [EMAIL PROTECTED]
> MSN: [EMAIL PROTECTED]
> Telefon: +36-30/6755532
>