2013-08-07 4 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

나는 Poco 라이브러리에 익숙하지 않다. 설명서/예제를 확인하십시오. – Sorin

관련 문제