qq_30707537
qq_30707537
采纳率0%
2016-03-21 08:47 阅读 3.1k

如何让自己发送出去的udp数据不被自己接收到?

请问如何让自己发送出去的udp数据不被自己接收到?我自己写了Android接收且有发送udp的客户端,接收到是我要的数据我就给它一个回应,但自己发出的udp数据,自己也接收到了,因为接收一直开着。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-03-21 09:58

    使用不同的端口,或者你在数据包里加上一个头,表示发出的客户端,自己收到自己的不处理。

    点赞 评论 复制链接分享
  • qq_30707537 qq_30707537 2016-03-21 11:51

    加上一个头,您说的头文件吗?具体怎么做呢?

    点赞 评论 复制链接分享
  • taotaolovec taotaolovec 2020-11-24 10:41
    void tom_udp_server::read_udp_data(void)
    {
        char s_udp_data_buf[1024];
        qintptr s_udp_read_len;
    
        while(udp_socket->hasPendingDatagrams())
        {
            memset( s_udp_data_buf, 0, sizeof(s_udp_data_buf));
            //s_udp_read_len = udp_socket->readDatagram( s_udp_data_buf, 1000);
            QNetworkDatagram s_udp_read_data =  udp_socket->receiveDatagram(1000);
            s_udp_read_len = s_udp_read_data.data().length();
            memcpy(s_udp_data_buf,s_udp_read_data.data().data(),s_udp_read_len);
            if(s_udp_read_len > 0)
            {
                QHostAddress s_sender_address = s_udp_read_data.senderAddress();
                qDebug() << "s_sender_address:" << s_sender_address.toString();
    
                if(host_server_ip_address == s_sender_address)
                {
                    continue;
                }
                else
                {
                    parse_udp_data(s_udp_data_buf,s_udp_read_len);
                }
            }
        }
    }

    亲试,没有问题

    点赞 评论 复制链接分享

相关推荐