Mina2.0的上传文件时如何实现的 请各位大侠指导下
譬如我A主机要传输一个 teacher.rmvb文件 去 B主机 B是服务端请问这个代码如何能写呢 谢谢各位大侠了
我的邮箱qyhdt@sina.com
还有就是在传输对象过程中 我设定了
factory.setDecoderMaxLineLength(Integer.MAX_VALUE);
factory.setEncodeMaxLineLength(Integer.MAX_VALUE);
有时候还是报异常 bufferdateexception 这个事怎么回事呢
谢谢各位阅读了 最近弄这个弄的好辛苦啊
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
请看这个例子:
mina的 StreamIoHandler
文章分类:Java编程
最近看上了mina,其性能多多,完全不用说了。。,本来是想搞个file+msg传输的,结果。。被这个handler给 block 了,不知道这个东西扎用。。。按其Iohandler interface implement methods+ processStreamIo abstract method 写了一个sample,发现死活发不了包。。。哥怒了。
没办法,开源的东西还是有好处地,可以深入,下了源码,发现其结构真的很不错,IoService(类似与和customer communication 的一个接口: session )<==IoProcessor(这个好象在code business 的时候没看到,后来才知道是用于处理IoFilter 的)<===IoFilter(*) ,IoHandler(business handler) 。
原来,StreamIoHandler 的 里面wrap 了两个内部out,in,并且对IoHandler 的每个method 都做了实现,迷底马上揭晓了。。。see the blew:
Java代码
划克,把processStreamIo template method 了。。(PS:曾经偶在写portal 里用到过这种pattern)
然后其他的iohandler 的method 里面也全写满了io logic....最后session closed 才把in ,out stream close .
我想,这样一来应该每传一个文件就回connect 一次了。。
费话说完了。。code ==>
Java代码
我已经解决了 谢谢大家
引用来自“王全”的帖子
引用来自“qyhdt”的帖子
引用来自“王全”的帖子
可以使用StreamIoHandler,这个handler主要是支持stream的.
直接实现它的processStreamIo method
客户端使用IoSessionOutputStream write,
服务端使用IoSessionInputStream read!
和本地的io流读写大同小异!
引用来自“qyhdt”的帖子
引用来自“王全”的帖子
可以使用StreamIoHandler,这个handler主要是支持stream的.
直接实现它的processStreamIo method
客户端使用IoSessionOutputStream write,
服务端使用IoSessionInputStream read!
和本地的io流读写大同小异!
引用来自“王全”的帖子
可以使用StreamIoHandler,这个handler主要是支持stream的.
直接实现它的processStreamIo method
客户端使用IoSessionOutputStream write,
服务端使用IoSessionInputStream read!
和本地的io流读写大同小异!
可以使用StreamIoHandler,这个handler主要是支持stream的.
直接实现它的processStreamIo method
客户端使用IoSessionOutputStream write,
服务端使用IoSessionInputStream read!
和本地的io流读写大同小异!
public class RmvbHandler implements IoHandler{
public void messageReceived(IoSession session, Object message)
throws Exception {
//不里不停的接收message,把他加到一个流中,再把这个流放到session,下次写时就拿这个流出来,再把数椐写进去
//一直到调用sessionClosed就把流拿出来,这样就成了
}
}
如果你一个socket要发送多个文件,那么就必需要解释rmvb文件格式了,起码得知道文件大小