package client;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.ConnectionConfiguration.SecurityMode;
import org.jivesoftware.smack.PacketCollector;
import org.jivesoftware.smack.SmackConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.filter.AndFilter;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.filter.PacketIDFilter;
import org.jivesoftware.smack.filter.PacketTypeFilter;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.packet.Presence;
import org.jivesoftware.smack.packet.Registration;
import org.jivesoftware.smack.provider.ProviderManager;
/**
*
* @author xu duzhou
*
*/
public class Clienttest extends Thread{
public String name;
public void setNames(String name) {
this.name = name;
}
public int index;
public void setIndex(int index) {
this.index = index;
}
@Override
public void run() {
// TODO Auto-generated method stub
Clienttest client = new Clienttest();
XMPPConnection connection= client.conServer();
String result=client.regist(connection,"sssssd"+index, "123");
System.out.println("第 "+ index +"个 regist result is----> "+result);
client.login(index,connection,"sssssd"+index, "123");
new CThread(connection).start();
System.out.println("----");
}
public XMPPConnection conServer() {
ConnectionConfiguration config = new ConnectionConfiguration(
"192.168.0.4", 5222);//修改为需要连接的ip地址
config.setSecurityMode(SecurityMode.required);
config.setSASLAuthenticationEnabled(false);
config.setCompressionEnabled(false);
/** 创建connection链接 */
try {
XMPPConnection connection = new XMPPConnection(config);
connection.connect();
ProviderManager.getInstance().addIQProvider("notification",
"androidpn:iq:notification",
new NotificationIQProvider());
return connection;
} catch (XMPPException e) {
e.printStackTrace();
}
return null;
}
private String newRandomUUID() {
String uuidRaw = UUID.randomUUID().toString();
return uuidRaw.replaceAll("-", "");
}
public String regist(XMPPConnection connection,String username, String password) {
if (connection == null)
return "0";
Registration reg = new Registration();
reg.setType(IQ.Type.SET);
reg.setTo(connection.getServiceName());
Map<String, String> user = new HashMap<String, String>();
user.put("username", username);
user.put("password", password);
user.put("email", "865227514@qq.com");
user.put("name", "larena");
reg.setAttributes(user);
PacketFilter filter = new AndFilter(new PacketIDFilter(
reg.getPacketID()), new PacketTypeFilter(IQ.class));
PacketCollector collector = connection.createPacketCollector(filter);
connection.sendPacket(reg);
IQ result = (IQ) collector.nextResult(SmackConfiguration
.getPacketReplyTimeout());
// Stop queuing results
//collector.cancel();// 停止请求results(是否成功的结果)
if (result == null) {
System.out.println("No response from server.");
return "0";
} else if (result.getType() == IQ.Type.RESULT) {
return "1";
} else { // if (result.getType() == IQ.Type.ERROR)
if (result.getError().toString().equalsIgnoreCase("conflict(409)")) {
System.out.println("IQ.Type.ERROR: "
+ result.getError().toString());
return "2";
} else {
System.out.println("IQ.Type.ERROR: "
+ result.getError().toString());
return "3";
}
}
}
public boolean login(int i,XMPPConnection connection,String username, String password) {
System.out.println("try to login...");
try {
if (connection != null)
{
connection.login(username, password,"AndroidpnClient");
PacketFilter packetFilter = new PacketTypeFilter(
NotificationIQ.class);
connection.addPacketListener(new NotificationPacketListener(i), packetFilter);
System.out.println("Login successfully!");
return true;
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Login failed!");
}
return false;
}
// public static void main(String[] args) {
//
// for(int i=0;i<500;i++){
// Clienttest client = new Clienttest();
// XMPPConnection connection= client.conServer();
// String result=client.regist(connection,"sssss"+i, "123");
// System.out.println("第 "+ i+"个 regist result is----> "+result);
// client.login(i,connection,"sssss"+i, "123");
//
// new CThread(connection).start();
// System.out.println("----");
// }
//
//
// }
static class CThread extends Thread{
XMPPConnection connection;
public CThread(XMPPConnection connection) {
super();
this.connection = connection;
}
@Override
public void run() {
Presence p=new Presence(Presence.Type.available);
while(true){
connection.sendPacket(p);
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Client.zip (18个子文件)
Client
bin
client
Test.class 884B
Clienttest.class 6KB
NotificationIQProvider.class 1KB
Clienttest$CThread.class 1KB
PersistentConnectionListener.class 875B
NotificationPacketListener.class 2KB
NotificationIQ.class 2KB
.settings
org.eclipse.jdt.core.prefs 629B
src
client
NotificationIQ.java 2KB
NotificationPacketListener.java 3KB
NotificationIQProvider.java 2KB
PersistentConnectionListener.java 1KB
Test.java 411B
Clienttest.java 5KB
.project 382B
.classpath 407B
libs
android.jar 5.18MB
smack.jar 303KB
共 18 条
- 1
资源评论
- Ting_wuji2014-06-20没什么问题 自己添加了界面启动
- shjpg2013-11-29为了查看实例
- dawnsun0012013-10-18经过实际鉴定,功能没问题
- 一起发财2013-06-18经过实际鉴定,功能没问题。不过代码中需要修改服务器IP和端口。
xdz_8899
- 粉丝: 70
- 资源: 41
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功