我试图编写一个简单的服务器应用程序来侦听来自客户端的XMPP连接的端口,但该应用程序似乎没有打开该端口。
这是我到目前为止所尝试的内容:
Server.java
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Collection;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.security.auth.callback.*;
import org.jivesoftware.smack.*;
public class Server implements Runnable{
private static final int DEFAULT_PORT = 5222;
private XMPPTCPConnection connection;
private ExecutorService serv;
public Server() {
connection = new XMPPTCPConnection(new ConnectionConfiguration("localhost",DEFAULT_PORT));
serv = Executors.newCachedThreadPool();
XMPPTCPConnection.addConnectionCreationListener(new ConnectionCreationListener() {
public void connectionCreated(XMPPConnection arg0) {
serv.submit(new ClientWorker((XMPPTCPConnection) arg0));
}
});
connection.addConnectionListener(new ServerListener());
}
public void run() {
while(true)
{
}
}
}
ServerListener 是一个实现 ConnectionListener 的类, ClientWorker 是一个实现 Runnable 的类。
我在Google上搜索过,但我找不到使用smack库的服务器应用程序的任何示例,仅用于客户端应用程序。你能告诉我我做错了什么吗?
答案 0 :(得分:2)
Smack是一个XMPP 客户端库。它没有提供任何手段,也无意运行XMPP 服务器。