Java实现XMPP发送接收消息和文件功能
package test;
import java.io.File;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smackx.filetransfer.FileTransfer;
import org.jivesoftware.smackx.filetransfer.FileTransferListener;
import org.jivesoftware.smackx.filetransfer.FileTransferManager;
import org.jivesoftware.smackx.filetransfer.FileTransferRequest;
import org.jivesoftware.smackx.filetransfer.IncomingFileTransfer;
import org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer;
/**
* 演示XMPP发送接收消息和文件的功能
*
* @author 王杰
* @date 2010-1-14 16:59:24
*/
public class XMPPTest {
private static void handleTransferRequest(FileTransferRequest request) {
File file = new File(request.getFileName());
IncomingFileTransfer transfer = request.accept();
try {
transfer.recieveFile(file);
} catch (XMPPException e) {
e.printStackTrace();
}
}
/* 发送文件 */
public static void sendFile(FileTransferManager transferManager,
String user, File file, XMPPConnection connection) throws Exception {
OutgoingFileTransfer transfer = transferManager
.createOutgoingFileTransfer(user);
long timeOut = 100000;
long sleepMin = 3000;
long spTime = 0;
int rs = 0;
transfer.sendFile(file, "Send file!");
rs = transfer.getStatus().compareTo(FileTransfer.Status.complete);
while (rs != 0) {
rs = transfer.getStatus().compareTo(FileTransfer.Status.complete);
spTime = spTime + sleepMin;
if (spTime > timeOut) {
相关文档:
一、问题的提出
Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C ......
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。支持ANSI-92 标准 SQL语法。而且他占的空间很小。大约只有160K,拥有快速的数据库引擎。
转帖时请注明此文来自技术世界:http://www.js4j.com ......
Java 理论与实践: 描绘线程安全性
2007-12-15 00:10
——线程安全不是一个非真即假的命题
Brian Goetz (brian@quiotix.com), 首席顾问, Quiotix Corp
2003 年 11 月 15 日
7月份我们的并发专家 Brian Goetz 将 Hashtable 和 Vector 类描述为“有条件线程安全的”。一个类难道不是线程安全就是线程 ......
之前在做findbugs的时候经常会查看字节码,都是一知半解的
那天看到一个问题,刚好可以从字节码来解释
这些题目常见于面试题,通常要是谁敢这么写代码,完全是在找死。。
Java代码
public class Test {
public static void main(String[]  ......
在使用队列中,我们一般都会使用循环队列以保证性能
package com.yz.myqueue;
public class Queue {
private Integer size;
private Integer front;
private Integer rear;
private Object[] datas;
public Queue(int size){
this.size=size;
this.front=-1;
this.rear=-1;
datas=new Object[size] ......