基于smack的即时聊天系统之文件接收功能实现
2015-01-26 14:51
423 查看
实现思路为:
1.接收方用户登录
2.获取文件发送方用户名
3.获取需要接收的文件名
4.获取需要接收的文件大小
5.设置文件存放路径
6.接收文件
实现代码为:
1.接收方用户登录
2.获取文件发送方用户名
3.获取需要接收的文件名
4.获取需要接收的文件大小
5.设置文件存放路径
6.接收文件
实现代码为:
public int SetTransFileCallBack(final Method method, final Object instance, final String downloadeDir) { FileTransferManager transferManager = new FileTransferManager( this.connection); transferManager.addFileTransferListener(new FileTransferListener() { public void fileTransferRequest(final FileTransferRequest request) { String fromwhere = request.getRequestor(); int pos = fromwhere.lastIndexOf('@'); String from = fromwhere.substring(0, pos); if (!from.equals("sharefilemanager")) SwingUtilities.invokeLater(new Runnable() { public void run() { String fileName = request.getFileName(); long fileSize = request.getFileSize(); String requestor = request.getRequestor(); String bareJID = org.jivesoftware.smack.util.StringUtils .parseBareAddress(requestor); ByteFormat format = new ByteFormat(); String text = format.format(fileSize); IncomingFileTransfer transfer = request.accept(); File filecreate = new File(downloadeDir); if (!filecreate.exists()) { filecreate.mkdirs(); } File downloadedFile = new File(downloadeDir, request.getFileName()); try { transfer.recieveFile(downloadedFile); while (true) { if (transfer.getStatus() == FileTransfer.Status.complete) { try { method.invoke(instance, new Object[] { fileName, bareJID, text, downloadeDir }); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return; } try { Thread.sleep(10L); } catch (InterruptedException e) { e.printStackTrace(); } } } catch (XMPPException e) { e.printStackTrace(); } } }); } }); return 0; }
相关文章推荐
- 基于smack的即时聊天系统之文件传输功能实现
- 基于smack的即时聊天系统之登陆功能的实现
- 数字天堂HBuilder+MUI(五)基于native.js的文件系统管理功能实现
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现文件发送接收功能,附源码
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现文件发送接收功能,附源码
- 基于Express+Socket.io+MongoDB的即时聊天系统的设计与实现
- mui初级入门教程(七)— 基于native.js的文件系统管理功能实现
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现文件发送接收功能,附源码
- 基于μcosII的嵌入式文件系统的设计与实现
- 基于S3C2440的Linux内核移植和yaffs2文件系统制作--Bootloader的功能
- Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现【5】消息发送,接收;修改心情的实现
- 基于fedora16的nagios环境搭建--个人日记(1)--安装增强功能实现文件共享
- ListView实现XP系统打开文件夹和文件功能
- 实现文件右键“打开方式”菜单功能(查看系统这种功能对比实现)(读注册表的方法)
- 基于struts 的FormFile实现文件的上传功能
- scp:实现网络中Linux系统下文件互相拷贝功能
- Java实现XMPP发送接收消息和文件功能
- 基于文件系统的图书管理系统的设计与实现
- 构建自己的即时聊天系统(基于xmpp)(转载)
- “基于关键字匹配的文本过滤系统”配置文件的设计和实现(C/C++源码)