C++ 如何知道QUdpSocket中的发送端口号?
有没有办法获取udp套接字用于发送消息的端口号 我想做的是向某人发送udp数据报,并监听发送端口 例如,在以下代码中:C++ 如何知道QUdpSocket中的发送端口号?,c++,qt,networking,qudpsocket,C++,Qt,Networking,Qudpsocket,有没有办法获取udp套接字用于发送消息的端口号 我想做的是向某人发送udp数据报,并监听发送端口 例如,在以下代码中: QUdpSocket *s = new QUdpSocket(this); s.writeDataGram(theData,theIp,thePort); 它是否自动将套接字与发送端口绑定 如果是这样,我可以监听发送端口吗?在发送数据之前,可以安全地将套接字绑定到端口、地址并指定地址 套接字绑定到端口和地址后,在指定端口的UDP数据报到达时发出 因此,您可以捕获readyRe
QUdpSocket *s = new QUdpSocket(this);
s.writeDataGram(theData,theIp,thePort);
它是否自动将套接字与发送端口绑定
如果是这样,我可以监听发送端口吗?在发送数据之前,可以安全地将套接字绑定到端口、地址并指定地址 套接字绑定到端口和地址后,在指定端口的
UDP数据报到达时发出
因此,您可以捕获readyRead()
信号并相应地处理数据,即不需要监听端口。
如果未将套接字s
绑定到端口the port
,UDP数据报到达时将不会发出readyRead()
信号。readDatagram
的
qint64 QUdpSocket::readDatagram ( char * data, qint64 maxSize, QHostAddress * address = 0, quint16 * port = 0 )
Receives a datagram no larger than maxSize bytes and stores it in data.
The sender's host address and port is stored in *address and *port
(unless the pointers are 0).
qint64 QUdpSocket::readDatagram(字符*数据,qint64 maxSize,QHostAddress*地址=0,quint16*端口=0)
接收不大于maxSize字节的数据报并将其存储在数据中。
发送方的主机地址和端口存储在*地址和*端口中
(除非指针为0)。
要接收数据报,必须首先将套接字绑定到特定的UDP端口。然后,要获取接收到的数据报的源端口,您需要为readDatagram
的port
参数提供一个非零参数,除非您已经绑定了套接字,否则绑定在发送或接收时会自动发生。因此,你的回答没有真正意义。希望我至少回答了倾听部分。