5
是否有可能有一個Listener server process and a Client process其中一個使用python解釋器和另一個pypy解釋器?多處理python和pypy之間的監聽器和客戶端
請問conn.send()
和conn.recv()
互操作好嗎?
是否有可能有一個Listener server process and a Client process其中一個使用python解釋器和另一個pypy解釋器?多處理python和pypy之間的監聽器和客戶端
請問conn.send()
和conn.recv()
互操作好嗎?
我嘗試過了,看看:
import sys
from multiprocessing.connection import Listener, Client
address = ('localhost', 6000)
def client():
conn = Client(address, authkey='secret password')
print conn.recv_bytes()
conn.close()
def server():
listener = Listener(address, authkey='secret password')
conn = listener.accept()
print 'connection accepted from', listener.last_accepted
conn.send_bytes('hello')
conn.close()
listener.close()
if __name__ == '__main__':
if sys.argv[1] == 'client':
client()
else:
server()
這裏是我得到的結果:
當使用PyPy 1.7(無關緊要其是在服務器和其客戶端),錯誤報告爲IOError: bad message length
。這也反映了the report on the pypy-dev mailing list。然而,最近這個問題已經得到解決(它在每晚構建中起作用),所以下一個版本(推測是1.8)也應該修復它。
一般來說,這是可行的,因爲多處理模塊使用Python的pickle模塊,該模塊在多個Python實現中都很穩定並且受支持,甚至是PyPy。
這真棒,你發現錯誤報告! – Jonathan 2011-12-28 19:09:43
謝謝你測試這個! – Demolishun 2012-01-14 20:53:57