问题描述
- 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作为发送端口?
解决方案
receiver = new QUdpSocket(this);
receiver->bind(45454,QUdpSocket::ShareAddress);
解决方案二:
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));
时间: 2024-08-04 14:14:16