2013-08-07 123 views
0

我想打開一個Datagramsocket並將一些數據包發送到我的網絡設備。 然而,當我用下面的COOD拋出一個異常說: Cannot Assign Requested Address: 192.168.1.114:1900UDP無法分配請求的地址

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代碼不起作用。

親切的問候

回答

1

我不知道Poco,但你必須bind本地地址和端口,那麼你的sendto將從發送您的包本地地址:端口到遠程地址和端口。

+0

這個答案是正確的。您可以綁定到本地IP地址,雖然它不是必需的,並且如果您想要UDP'連接'語義,您必須連接()到遠程IP地址。 – EJP

0

檢查文檔。可能sa應該是本地地址,並且遠程地址將被指定在別的地方。

UDP沒有連接的概念,所以沒有理由將套接字綁定到單個遠程地址。一個UDP套接字可以發送和接收任何遠程套接字。

+0

我明白了,我該如何指定目標設備的IP:端口呢? – Moonlit

+0

我不熟悉波科圖書館。檢查文檔/示例。 – Sorin

相關問題