2014-01-28 7 views
0

Im новый для программирования. Я хочу знать, есть ли способ отправить переменную, созданную на одном компьютере в python, на другой компьютер, на котором запущен другой скрипт python в той же сети. В принципе, скажем, когда переменная равна 5, я хочу, чтобы другой скрипт печатался 5Передача переменной между скриптами python на разных компьютерах.

ответ

-4

использование попытки сокета рассол, рассол преобразует переменный в строку, то вы можете восстановить объект на другом сервере

только основные функции, этот код не работает в одиночку

socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
sock.bind((host, port)) 
conn, addr = sock.accept() 
conn.sendall(pickle.dumps({'somedictionary':data})) 

восстановить данные с

dict=pickle.loads(bufferreceived) 
+0

это не означает, что это не для сети .. просто не принимать данные от ненадежных хостов с рассолом, потому что это может быть что угодно ... если вы знаете, откуда вы получаете данные, это не проблема, и ... кто-то, кто изучает основные вещи, вероятно, напишет что-то действительно небезопасное тоже ... – BrenoZan

+1

Где доверие в этом ответе? Где предупреждение об опасности использования этого кода? Я надеюсь, что тот, кто задал вопрос, отправился и прочитал документацию рассола после прочтения этого ответа и увидел предупреждение для себя, но безответственно дать этот ответ, не дублируя это предупреждение. В дополнение к этому «я хочу отправить номер 5 по сети» - это плохая причина подвергать себя этим проблемам. Это правда, что вы можете * хотеть отправлять рассолы по сети, но только если у вас есть более сложная проблема, чем это. Для чего-то этого легко риск не стоит. –

0

Простым способом сделать это было бы через веб-службы. По сути, вы получаете прослушивание ComputerB на порту (например, 80, 81, 8100 и т. Д.), И ваш сценарий на ComputerA разговаривает с ним по http.

Вы можете использовать простую структуру, например web.py или Django, размещенную на веб-сервере, для вызова некоторого кода Python, который устанавливает эту переменную.

0

Это действительно зависит от ваших технических требований, архитектуры программы и т.д. Но в принципе я мог бы рекомендовать вам использовать какой-то сообщение Qu eue для связи между вашими приложениями. Например, RabbitMQ.

0

Попробуйте ZeroMQ.

ØMQ (также известный как ZeroMQ, 0MQ или zmq) выглядит как встраиваемый сетевой библиотеки, но действует как основы параллелизмом. Он дает вам сокеты , которые несут атомарные сообщения в различных транспортных средствах, например, в процессе, между процессами, TCP и многоадресной рассылкой. Вы можете соединять сокеты N-to-N с шаблонами, такими как разветвление, pub-sub, распределение задач и запрос-ответ.

Смежные вопросы