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) {
相关文档:
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。支持ANSI-92 标准 SQL语法。而且他占的空间很小。大约只有160K,拥有快速的数据库引擎。
转帖时请注明此文来自技术世界:http://www.js4j.com ......
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类
对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这 ......
之前在做findbugs的时候经常会查看字节码,都是一知半解的
那天看到一个问题,刚好可以从字节码来解释
这些题目常见于面试题,通常要是谁敢这么写代码,完全是在找死。。
Java代码
public class Test {
public static void main(String[]  ......
JTA(Java Transaction API)
2008-07-31 10:20
一般情况下,J2EE应用服务器支持JDBC事务、JTA事务、容器管理事务。这里讨论JTA和JDBC事务的区别。这2个是常用的DAO模式事务界定方式。
JDBC 事务
JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动提交和手工提 ......