void address_pool::set_address_pool(QString get_IP)
{
QString ip;
ip= get_IP;
qDebug()<<"IP"<<ip;
QStringList str=ip.split(",");
QStringList strlist= str.at(0).split(".");
// qDebug()<<strlist.at(0);
// qDebug()<<strlist.count();
bool m;
int number=str.at(2).toInt(&m,10);
// qDebug()<<number;
QString start;
int start_end;
QString IP;
start=strlist.at(0)+"."+strlist.at(1)+"."+strlist.at(2)+".";
// qDebug()<<"start"<<start;
bool ok;
start_end=strlist.at(strlist.count()-1).toInt(&ok,10);
for(int i=0;i<number;i++)//主要看这,在这插入
{
start_end+=i;
IP=start+QString::number(start_end);
pool.insert(i,IP);
qDebug()<<IP;
IP="";
start_end=strlist.at(strlist.count()-1).toInt(&ok,10);
}
}
void address_pool::provide_IP(QByteArray reciver)
{
QByteArray send=reciver;
qDebug()<<"receiver_requst"<
qDebug()
for(p=pool.begin();p!=pool.end();p++)//为什么在这pool.size的值为0
{
qDebug()
if(p.value()!="")
{
send.append(p.key());
if(send.size()
{
for(int i=send.size();i
{
send.append('\0');
}
}
send.append(p.value());//提供IP地址
if(send.size()
{
for(int i=send.size();i
{
send.append('\0');
}
}
send.append(ser_ip);//提供server IP地址
if(send.size()
{
for(int i=send.size();i
{
send.append('\0');
}
}
// send_IP_ID=p.key();
// send_IP_address=p.value();
p.value()="";
emit send_IP(send);
qDebug()
break;
}
}
}
在头文件里定义的私有变量是
QMap pool;
QMap::iterator p;
是不是因为局部变量的原因,还是pool被释放了,求大神指导