基于mina的NIO java client

发布于 2022-09-18 02:25:29 字数 10568 浏览 10 评论 0

昨天测试的有点马虎,多线程环境下还有点问题。

基于mina做了一个NIO的java client。
相比原来的java client会有更好的性能。使用方法和原来类似。

依赖的mina包请到 apache mina 网站上下载。http://mina.apache.org/
协议的打解包都还是使用的原来的代码的实现。

还比较粗糙,很多异常处理还没有完善,先拿出来抛砖引玉。

例如:

byte[] data=new byte[]{1,1,1,1,1};
StorageClient client=new StorageClient(new String[]{"192.168.56.101:22122"});
//上传文件
FastDfsFile file=client.uploadFile(null, "gif", data, 0, null);
System.out.println("File:"+file.getGroupName()+";"+file.getFileName());
for (int i = 0; i < 10; i++) {
//下载
  byte[] buffer=client.downLoadFile(file.getGroupName(), file.getFileName());
  if (buffer!=null) {
    System.out.println("Download time:"+i);
    assert buffer.equals(data);

  }
}
NameValuePair[] meta_list;
meta_list = new NameValuePair[4];
meta_list[0] = new NameValuePair("width", "800"+getId());
meta_list[1] = new NameValuePair("heigth", "600"+getId());
meta_list[2] = new NameValuePair("bgcolor", "#FFFFFF");
meta_list[3] = new NameValuePair("author", "Mike");
System.out.println("SetMeta File:"+file.getGroupName()+";"+file.getFileName());
boolean result=client.setMetaData(file.getGroupName(), file.getFileName(), meta_list,ProtoCommon.STORAGE_SET_METADATA_FLAG_OVERWRITE);
assert result==true;
System.out.println("GetMeta File:"+file.getGroupName()+";"+file.getFileName());
NameValuePair[] metas=client.getMetaData(file.getGroupName(), file.getFileName());
assert metas==meta_list;
System.out.println("Delete File:"+file.getGroupName()+";"+file.getFileName());
result=client.deleteFile(file.getGroupName(), file.getFileName());


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哭了丶谁疼 2022-09-25 02:25:29

非常好,顶一个,希望继续完善哦。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文