Вот простой вопрос, и я удивлен, что я уже не сталкивался с подобным.Отправить строки по сети
Мне хотелось бы, чтобы два процесса отправляли строки (сообщения) друг другу с помощью функций send() и receive(). Вот простой пример:
# Process 1
# ... deal with sockets, connect to process 2 ...
msg = 'An arbitrarily long string\nMaybe with line breaks'
conn.send(msg)
msg = conn.receive()
if process1(msg):
conn.send('ok')
else:
conn.send('nok')
и
# Process 2
# ... deal with sockets, connect to process 1 ...
msg = conn.receive()
conn.send(process2(msg))
msg = conn.receive()
if msg == 'ok':
print('Success')
elif msg == 'nok':
print('Failure')
else:
print('Protocol error')
Я знаю, что это довольно легко с голыми потоковыми сокетами, но это по-прежнему громоздким и подвержен ошибкам (сделать несколько conn.recv() внутри цикл и проверить размер, например, HTTP или конец маркера потока, например SMTP и т. д.).
Кстати, не обязательно использовать сокеты, если сообщения любого размера могут надежно переноситься через сеть эффективным образом.
Я что-то не так? Разве нет простой библиотеки (Twisted AMP не выглядит просто), делая именно это? Я искал Интернет в течение нескольких часов без успеха :)
То, что мне нужно, спасибо! Вот документ, который, я думаю, я буду использовать (для тех, кто видит этот вопрос): https://learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/patterns/pair.html – bbc