나는이 일을 잘하고 있는지 잘 모르겠지만 정상적인 TCP 연결에서 ZMQ를 실행하는 서버에 메시지를 보내고 싶습니다. 서버는 TCP transport
을 사용하여 포트 5555
에서 Python ZMQ를 실행하고 있습니다. 나는 전통적인 TCP를 사용하는 다른 클라이언트 (Python, Java, PHP)를 사용하여 메시지를 보낼 수 있기를 원한다. 이것은 내가 지금까지 무엇을 가지고 :기존의 TCP를 사용하여 ZeroMQ 서버에 메시지를 보낼 수 있습니까?
서버에
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
message = socket.recv()
print message
socket.send('{"name":"someone"}')
CLIENT
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 5555))
s.send('Hello, World!')
data = s.recv(1024)
print data
클라이언트에서 인쇄 data
나에게 내가 기대하고있는 메시지를 제공하지 않습니다. 나는 이것을 얻는다 : �
. 나는 바이트의 배열했다 얻고 무엇을 생각 bytes(data).decode('utf8')
일을했지만, 나는 다음과 같은 오류 얻을 : 난 그냥 궁금
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
을이 전혀 가능합니까? 아니면 내가 잘못하고있는거야? 또한 추천입니까?
클라이언트에서 ZMQ를 사용하지 않은 이유는 종속성의 수를 줄이려는 것입니다 (ZeroMQ가 하나임).
도움 주셔서 감사합니다.
고마워요! 이것이 바로 내 문제였습니다. 나는 양측 모두에서 일반 TCP를 사용할 것을 고려할 것이다. – Sthe