QT中 UDP 怎么绑定发送端口

int Sender::Send(QString ipaddr,quint16 port)
{
QHostAddress serverAddress = QHostAddress(ipaddr);

return udpSocket->writeDatagram(TX_data.data(), TX_data.size(),serverAddress, port);
}

发送函数可以发送数据到指定的对方的地址和端口,但是发送所使用的端口是系统随机分配的,请问怎样固定发送端口,比如指定7777作为发送端口?

s = socket(AF_INET, SOCK_STREAM, 0);
/* ... */

memset(&client_addr, 0, sizeof(client_addr));
client_addr.sin_family = AF_INET;
client_addr.sin_port = htons(22222);

if (bind(s, (struct sockaddr *) &client_addr, sizeof(client_addr)) < 0) {
    perror("bind");
    exit(1);
}

connect(s, (struct sockaddr *) &server_addr, sizeof(server_addr));

receiver = new QUdpSocket(this);

receiver->bind(45454,QUdpSocket::ShareAddress);

还没解决啊