安定したインターフェイスとクリーナーインターフェイスを実現するために、未処理のTCPソケットをZeroMQに移植するPythonコードを移植しています。PythonのZeroMQで生のバイトを送信
すぐにバットをオフ私は、私が期待しているように生のバイトの単一のパケットが送信されないことがわかります。 rawソケットで
:
現在作業中のコードであるimport socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
sock.send('\x00\x01\x02 and some more raw bytes')
。これはZeroMQを使用して、同じコードです:
import zmq
context = zmq.Context()
sock = context.socket(zmq.REQ) # this connection utilizes REQ/REP
sock.connect('tcp://{0}:{1}'.format(HOST, PORT))
sock.send('\x00\x01\x02 and some more raw bytes')
しかし、私はネット上で向かうパケットを検査するとき、彼らは私が期待していどのような間違いはありません。私はここで何が欠けていますか?
また、このコードをダミーサーバーのループバックインターフェイス(127.0.0.1
)でテストすると、うまく動作しているようです。
Python 2.7が重要な場合(ユニコードなど)を使用する。
出力はありません。未処理のネットワークトラフィックを調べていますが、探しているのはそれですか? –
zeromqはソケット上でマーシャリングする独自のデータを使用します。あなたがパケットを盗聴するなら、それらは全く同じである必要はありません –
@BartekBanachewicz - 本当にありがとう、ありがとう。ちょうど私の答えに注目してください。 –