C++ UDP无法分配请求的地址
我想打开一个Datagramsocket并向我的网络设备发送一些数据包。 但是,当我使用以下cood时,会抛出一个异常,表示:C++ UDP无法分配请求的地址,c++,sockets,udp,datagram,poco-libraries,C++,Sockets,Udp,Datagram,Poco Libraries,我想打开一个Datagramsocket并向我的网络设备发送一些数据包。 但是,当我使用以下cood时,会抛出一个异常,表示: 无法分配请求的地址:192.168.1.114:1900 Poco::Net::SocketAddress sa("192.168.1.114",1900); Poco::Net::DatagramSocket dgs(sa); std::string text = "hello"; dgs.sendBytes(text.data(),text.size()); 这里
无法分配请求的地址:192.168.1.114:1900
Poco::Net::SocketAddress sa("192.168.1.114",1900);
Poco::Net::DatagramSocket dgs(sa);
std::string text = "hello";
dgs.sendBytes(text.data(),text.size());
这里有什么问题。我还使用一个udp测试软件来测试接收端是否能够在这个端口上接收udp数据包,并且它可以工作,但是使用上面的poco代码它就不能工作了
亲切问候检查文档。可能
sa
应该是本地地址,而远程地址应该在其他地方指定
UDP没有连接的概念,因此没有理由将套接字绑定到单个远程地址。UDP套接字可以向任何远程套接字发送和接收数据。我不知道
Poco
,但您必须将绑定到本地地址和端口,然后您的sendto
将数据包从该本地地址:端口发送到远程地址和端口。我明白了,那么如何指定目标设备的IP:端口呢?我不熟悉Poco库。检查文档/示例。此答案是正确的。您可以绑定到本地IP地址,但这不是必需的,如果需要UDP“已连接”语义,则必须将()连接到远程IP地址。