いいえ、送信者のアドレスをZeroMqから取得することはできません。基本的に2つの選択肢があります。送信者アドレス情報をメッセージ自体に追加します(既存のメッセージ構造を変更することができる場合は不適切なオプションではありません)。送信者アドレスをメッセージ部分として追加します。つまり、ZeroMqマルチパートメッセージを使用します。
複数の部分のメッセージは引き続き配信されますが(すべての部分またはすべてではありません)、受信側で個別に抽出することができるため、送信者のアドレスを既存のメッセージに追加または追加することができますそれらに実際に触れることなく(そして、アトミック操作としてアドレス+メッセージの両方を配信します)。
これはpyzmqバインディングでどのように実装されているのかわかりませんが、詳細はsocket.pyx sourceを参照してください(基本的にはsend(..)メソッドでSNDMOREフラグを使用してください)。
さらに、ZeroMq zmq_send() Api docs(3.2.2)をご覧ください。 C++で
、それは次のようになります。これは最近のGitHubに上陸したよう
// 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);
は、GUIDの送信者の識別子ではなくデータでありますそれ以外の場合は 'getpeername'で収集します。以下のリンクを参考にしてください:http://lists.zeromq.org/pipermail/zeromq-dev/2011-June/012041.html –