Tôi đang chuyển một số mã Python sử dụng ổ cắm TCP thô đến ZeroMQ để có độ ổn định tốt hơn và giao diện rõ ràng hơn.Gửi byte thô qua ZeroMQ bằng Python
Phải tắt dơi Tôi có thể thấy rằng một gói byte nguyên duy nhất không được gửi như tôi mong đợi.
Trong socket thô:
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')
Đó là đoạn code làm việc hiện tại. Đây là cùng một mã sử dụng 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')
Nhưng khi tôi kiểm tra các gói đi qua mạng, chúng chắc chắn không phải là những gì tôi mong đợi. Tôi đang thiếu gì ở đây?
Ngoài ra, khi kiểm tra mã này trên giao diện vòng lặp (127.0.0.1
) với máy chủ giả có vẻ như nó hoạt động tốt.
Sử dụng Python 2.7 nếu nó quan trọng (unicode hoặc whatnot).
Không có đầu ra, tôi đang kiểm tra lưu lượng truy cập mạng thô, là những gì bạn đang tìm kiếm? –
zeromq sử dụng dữ liệu riêng của nó marshaling trên ổ cắm; nếu bạn sniff các gói, họ không phải được chính xác giống nhau –
@BartekBanachewicz - rất đúng, cảm ơn. Nhận thấy câu trả lời của tôi từ lúc này. –