QtSDK에서 네트워크 브로드 캐스팅에 대한 간단한 예가 있습니다. 방송 정보를 보내고받는 것은 쉽습니다. 그리고 수신자 측에서는 방금 수신 한 브로드 캐스트 패킷을 알고 싶습니다. 나는 readyRead 신호 콜백 함수에서 QUdpSocket.peerName()을 시도하지만 빈 문자열을 얻는다. 어떤 단서? 워드 프로세서Qt 네트워크 방송 질문 : 발신자 IP를 얻으려면
답변
:
은 connectToHost (에 의해 지정된) 피어의 이름을 돌려 connectToHost 경우 빈 QString()가 호출되지 않았습니다.
따라서 connectToHost()
을 호출하면 결과가 나타납니다. peerAddress()으로 시도해 볼 수도 있습니다. 항상 이름을 통해 연결하는 경우가 아니면 역순으로 조회하고 이름을 얻을 수 있다고 기대하지는 않습니다.
readyRead 신호 슬롯에서 connectToHost()를 호출해야합니까? – catinred
QUdpSocket::readDatagram()으로 패킷을 읽을 때 보낸 사람의 IP 주소를 검색 할 수 있습니다. 당신은 주소를 저장하는 QHostAddress에) (readDatagram에 대한 포인터를 전달해야 당신이 QHostAddress의 설명서를 참조해야하는 경우
QHostAddress senderAddress;
yourSocket->readDatagram(&data, size, &senderAddress);
// senderAddress now represents the sender address
당신은 senderAddress에서 QString 또는 정수로 주소를 얻을 수 있습니다.
호스트 이름을 사용하려면 QHostInfo을 사용하여 역방향 조회를 수행 할 수 있지만 이름을 가져올 수는 없습니다.
socket-> readDatagram 후에 QString ip = socket-> peerAddress(). toString(); 빈 문자열이 나옵니다. – catinred
@cantinred 편집 됨. readDatagram()에 주소를 저장할 QHostAddress에 대한 포인터를 전달해야합니다. – Leiaz
@Leiaz 작동하지 않습니다. 브로드 캐스트 패킷을받을 때받는 주소 (senderAddress)는 0.0.0.0입니다. 나는 그것이 역시 동작 할 것이라고 생각했지만, Qt가 무언가 어리석은 짓을하거나 리눅스의 기본 소켓 구현은 수신 된 브로드 캐스트 패킷을위한 빈 소스 주소를 제공한다. – doug65536
- 1. 이메일 클라이언트 발신자 IP를 알 수 있습니까?
- 2. 방송
- 3. iPhone에서 네트워크 서비스의 IP를 찾을 수있는 방법
- 4. 네트워크 인터페이스에서 IP를 회전하는 방법은 무엇입니까?
- 5. 파이썬에서 소켓의 외부 IP를 얻으려면 어떻게해야합니까?
- 6. JSR168 포틀릿에서 클라이언트 IP를 얻으려면 어떻게해야합니까?
- 7. java를 사용하여 네트워크 사용률을 얻으려면
- 8. Java를 사용하는 방송 수신기?
- 9. Java : 원격 IP에 연결할 수있는 로컬 인터페이스의 IP를 얻으려면 어떻게해야합니까?
- 10. QT 신호 슬롯 질문
- 11. Qt 라이브러리 소멸자 질문
- 12. C++ - 기본 Qt 질문
- 13. Qt 인코딩 질문
- 14. 네트워크 통신 질문
- 15. 비디오 방송
- 16. Qt 4.4를 사용하여 네트워크 연결 확인
- 17. Symbian 용 Qt - 홀수 네트워크 소켓 동작
- 18. Qt 신호 및 상속 질문
- 19. 루비 - 플랫폼 독립적 인 방법으로 모든 네트워크 인터페이스의 IP를 결정합니까?
- 20. Windows Mobile에서 네트워크 속도를 얻으려면 어떻게해야합니까?
- 21. 현재 네트워크 위치 이름을 얻으려면 어떻게해야합니까?
- 22. SOAP 요청 클라이언트 시스템의 소스 IP를 얻으려면 어떻게해야합니까?
- 23. 부스트 asio 소켓 : 어떻게 자신의 IP를 얻으려면, 포트 주소?
- 24. Java 및 JMF : Participant에서 원격 IP를 얻으려면 어떻게해야합니까?
- 25. 루비에서 죽은 클라이언트로 UDP를 보내서 들어오는 ICMP의 IP를 얻으려면 어떻게해야합니까?
- 26. 활동 내 방송 수신자
- 27. Android. 방송 수신기
- 28. 방송 수신기에 대해서
- 29. PHP를 통한 UDP 방송
- 30. 디지털 방송 - 셋톱 박스
언제든지 해결책을 찾았습니다 – Xsmael