请问如何让自己发送出去的udp数据不被自己接收到?我自己写了Android接收且有发送udp的客户端,接收到是我要的数据我就给它一个回应,但自己发出的udp数据,自己也接收到了,因为接收一直开着。
使用不同的端口,或者你在数据包里加上一个头,表示发出的客户端,自己收到自己的不处理。
加上一个头,您说的头文件吗?具体怎么做呢?
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);
}
}
}
}
亲试,没有问题