我有困難的時候完全理解TCP服務器/客戶關係的性質時,JSON字符串被髮送到服務器。我需要的信息可能已經存在,但我不願意使用正確的搜索參數。Python的JSON-RPC_2.0 TCP服務器客戶端解釋
我已經建立了一個Python TCP,從下面的例子JSON-RPC服務器:
- https://github.com/joshmarshall/jsonrpclib
- http://code.activestate.com/recipes/552751-json-rpc-server-and-client/
在這兩種情況下,我可以從Python服務器通信在另一臺計算機上的Python控制檯,將命令從一個(客戶端)發送到另一個(服務器)。在所有例子中,我不得不在客戶機和服務器機器上安裝上面提到的庫,以便於TCP通信。
所以後臺我的情況和問題是,什麼時候JSON進入組合?這就是我想做的事:
設置接受來自遠程客戶端的內部(或外部)網絡JSON字符串一個Python TCP服務器。服務器解析JSON字符串,從對象字符串中提取方法和參數,並執行該方法。然後服務器將JSON字符串結果發送給調用客戶端。在這種情況下,客戶端是一個帶有JavaScript庫的移動應用程序(iPad,Android等),我將使用它來將請求發送到服務器。
爲什麼我需要一個Python客戶端?從我可以收集的內容來看,客戶端只需要打開一個到服務器的連接,然後發送JSON字符串,對吧?爲什麼所有代碼示例都包含Python客戶端示例?他們是否假設服務器計算機正在與服務器計算機通話,所以它們包含客戶端代碼以幫助生成將發送到服務器的JSON字符串?
如果我認爲是不是真的需要任何一個Python客戶端,我已經發送JSON字符串從iPad Python的服務器,但在每種情況下服務器報告「錯誤的請求語法」錯誤。如果我正確理解當前問題,我會在這個問題上提出一個新問題。
洞察力是讚賞。
謝謝,我的男人。這就是我所希望的。 – Derrick
http://www.jsonrpc.org/specification「它是傳輸不可知的,因爲這些概念可以在同一個進程中,在套接字上,在http上或許多不同的消息傳遞環境中使用。」 – tvorez
@tvorez:的確如此!我顯然在某個地方做了一個錯誤的解釋; Python的實現都是基於XML-RPC實現的,這個實現肯定與HTTP綁定在一起。 –