QUdpSocket的用法:


Bind():

net_ = new NetImpl;

    auto ret = net_->sock->bind(conf.local_port);

    if (!ret)

    {

        /// bind to localaddress failed

        LOG(ERROR) << "bind to local address failed,port:" << conf.local_port;

        return EPlatError_Failed;

    }

Read():

  auto data = ptr->net_->sock->receiveDatagram();

            if (data.senderAddress().toIPv4Address() != QHostAddress(ptr->config_.remote_addr.c_str()).toIPv4Address())

            {

                continue;

读之前可以先做判断:

if (ptr->net_ != nullptr && ptr->net_->sock->hasPendingDatagrams())

Write():

auto cnt = net_->sock->writeDatagram((const char *)buf, len,

                                         QHostAddress(config_.remote_addr.c_str()), config_.remote_port);

Close();

    /// unbind socket

    net_->sock->close();

    delete net_;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM