다른 컴퓨터의 여러 프로세스에서 데이터를 수신하는 ZeroMQ 소켓이 있습니다. 데이터 내용을 변경하지 않고 데이터 원본을 식별 할 수있는 방법이 있습니까? 특히, TCP 연결에서 온 경우 보낸 사람의 IP 주소를 원합니다.ZeroMQ 메시지의 출처를 알 수있는 방법이 있습니까?
2
A
답변
4
아니요, ZeroMq 소켓에서 발신자 IP를 가져올 방법이 없습니다. 이 정보는 ZeroMq 구현 레이어 내에 숨겨져 있습니다. 이 문제를 해결할 수있는 몇 가지 선택 사항이 있습니다. 하나는 전달되는 메시지를 변경하고 단순히 메시지 자체에 보낸 사람 IP를 추가하는 것이고 다른 하나는 다중 부분 메시지를 사용하는 것입니다.
ØMQ 메시지는 하나 개 이상의 메시지 부분으로 구성되어 다음 ZeroMq zmq_send() API 문서 (3.2.2)에서
. 각 메시지 부분은 독자적인 zmq_msg_t입니다. ØMQ는 메시지의 원자 전달을 보장합니다. 동료는 메시지의 모든 메시지 부분을 수신하거나 전혀 수신하지 않습니다. 메시지 부분의 총 수는 사용 가능한 메모리를 제외하고는 무제한입니다.
멀티 파트 메시지는 실제로 원자 메시지이지만 여러 논리 메시지로 구분됩니다. 나는. 모든 부품 또는 부품이 제공됩니다. 원본 메시지를 수정할 수없는 경우 발신자 측의 IP에 발신자의 IP를 추가 할 수 있습니다. 그러면 수신자는 첫 번째 부분을 보낸 사람 IP로 추출하고 두 번째 부분은 원래의 수정되지 않은 메시지로 추출 할 수 있습니다. 단일 메시지로 전달되지만 논리적으로 두 개의 분리 된 부분으로 분리됩니다. 수신기를 들어
// Send a multi-part message consisting of sender IP plus another message
zmq_msg_send (&my_ip, my_socket, ZMQ_SNDMORE);
zmq_msg_send (&my_message, my_socket, 0);
zmq_msg_recv()의 설명서를 참조하십시오 : 귀하의 경우에는
, 당신이 뭔가를 할 수 있습니다.
관련 문제
- 1. twilio 메시지의 상태를 알 수있는 옵션이 있습니까?
- 2. ExternalInterface.call의 출처를 확인하는 방법이 있습니까?
- 3. SqlDateTimeOverflow의 출처를 어떻게 알 수 있습니까?
- 4. ResourceBundle의 출처를 어떻게 알 수 있습니까?
- 5. Giraph에서 사용되는 메시지의 가치를 알 수있는 방법
- 6. 트위터는 TWRequest의 출처를 어떻게 알 수 있습니까?
- 7. gcc는 소스의 출처를 어떻게 알 수 있습니까?
- 8. CSS 규칙의 출처를 확인하는 방법이 있습니까?
- 9. json이 어떤 유형인지 알 수있는 방법이 있습니까?
- 10. 행이 업데이트되었는지 알 수있는 방법이 있습니까?
- 11. freemarker : 호출 URL을 알 수있는 방법이 있습니까?
- 12. 사용자가 애플릿을 거부했는지 알 수있는 방법이 있습니까?
- 13. 프로그램이하는 일을 알 수있는 방법이 있습니까?
- 14. 보고서에 가입 여부를 알 수있는 방법이 있습니까
- 15. Android 앱이 종료되었음을 알 수있는 방법이 있습니까?
- 16. Activity가 시작한 resultCode를 알 수있는 방법이 있습니까?
- 17. UIPickerView가 회전 중인지 알 수있는 방법이 있습니까?
- 18. 가치가있는 속성을 알 수있는 방법이 있습니까?
- 19. x-sendfile이 시작되었는지 알 수있는 방법이 있습니까?
- 20. timerTask가 완료되었는지 알 수있는 방법이 있습니까?
- 21. FusionChart를 내보낼 준비가되었는지 알 수있는 방법이 있습니까?
- 22. 변수가 C로 선언되었는지 알 수있는 방법이 있습니까?
- 23. 활동이 완전히 시작된시기를 알 수있는 방법이 있습니까?
- 24. 시작한 프로그램의 PID를 알 수있는 방법이 있습니까?
- 25. FragmentTransactions에서 애니메이션이 완료되면 알 수있는 방법이 있습니까?
- 26. 활동 시작 여부를 알 수있는 방법이 있습니까?
- 27. 다운로드가 일어나는지 알 수있는 방법이 있습니까
- 28. 변수의 출처를 확인하는 좋은 방법이 있습니까?
- 29. smpp에서 플래시 메시지의 제목을 제어 할 수있는 방법이 있습니까?
- 30. 스칼라 암시 적 정의의 출처를 알 수있는 방법은 무엇입니까?
ZMQ가 메시지를 보내는 데 사용하는 IP 주소를 로컬에서 어떻게 결정합니까? – xSNRG
글쎄, 보통 당신이 선택한 끝점에 소켓을 묶는다. 이 엔드 포인트 (ip + port)는 zmq가 메시지를 보내는 데 사용합니다. –