无法在QT中发送udp数据包

时间:2016-10-27 02:21:21

标签: c++ qt sockets networking udp

所有

我想使用QUdpSocket发送udp数据包以从特定服务器获取配置参数,但它失败了,我无法使用wireshark捕获发送数据包。我的代码是:

CGetConfig.cpp:

CGetConfig::CGetConfig(const QString &conf_server,const uint16_t port)
:m_conf_server(conf_server)
,m_port(port)
{
    m_socket = NULL;
}

CGetConfig::~CGetConfig()
{}

void CGetConfig::init()
{

    // create a QUDP socket
    m_socket = new QUdpSocket(this);
    m_socket->bind(QHostAddress::LocalHost, 12345);

    connect(m_socket, SIGNAL(readyRead()), this, SLOT(readyRead()));

    m_ip_addr = get_ip_address(m_conf_server);
}

bool CGetConfig::get_reflector(const QString &mac)
{
  qDebug() << "CGetConfig::get_reflector():Entry\n";
  if(m_ip_addr.isEmpty())
  {
    qDebug() << "CGetConfig::get_reflector():ip address of cofnig server could not be resolved\n";
    return 0;
  }

  QString msg("id=1&mac=");
  msg+= mac;
  msg+= "&get_config=fw_type=v.1,cfg_ver=4,set_ver=0,ip=192.168.1.101";
  qDebug() << m_ip_addr;
  qDebug() << m_port;
  qDebug() << msg.toLatin1();
  int count = 0;
  while(count < 3)
  {
     int t = m_socket->writeDatagram(msg.toLatin1(), QHostAddress(m_ip_addr), m_port);

     count++;
 }
}

Main.cpp的

CGetConfig cfg(cfg_server,cfg_port);
cfg.init();
local_mac = "00d033120001";
cfg.get_reflector(local_mac);

任何人都可以帮我解决问题吗?

0 个答案:

没有答案