2013-02-18 83 views
1

基本上,我想獲得服務器上文件的層次結構,並將其發送到已發送特定命令的連接客戶端。我有我的代碼正確編寫,以便它檢測命令,並將它去爲了生成層次結構需要去的地方,但這裏是我卡住的地方。有沒有辦法做到這一點,而不是發送一堆格式化的字符串(選項卡來指定一個文件夾更深,等)?我在想像一個列表,然後通過transport.write發送所述列表,但是當我做客戶端沒有收到它,或者至少dataReceived沒有被觸發。我不知道該怎麼做。任何洞察力將不勝感激。扭曲 - 發送文件層次結構

+0

請發佈您正在使用的實際代碼,以便我們可以瞭解爲什麼'dataReceived'沒有被調用。如果這麼基本的東西不起作用,你可能有一個你需要解決的基本問題。在開始擔心如何序列化層次結構之前,您需要能夠發送簡單的字符串。 – Glyph 2013-02-18 20:00:31

回答

0

你需要發送一個字符串到另一邊。這意味着你需要以某種方式連續化你的層次結構。除非你已經有一些特殊的方式來處理你的應用程序中的二進制數據,否則我會建議使用一些標準。將您的層次結構保存爲json,msgpack,protobuf,thrift或其他已經很好實施的內容。

然後,只需在另一邊使用相同的庫解壓縮。

+0

這不可靠,因爲首先你必須重新組裝你的字符串。請參閱http://twistedmatrix.com/trac/wiki/FrequentlyAskedQuestions#Whyisprotocol.dataReceivedcalledwithwithonlypartofthedataIcalledtransport.writewith – Glyph 2013-02-18 19:59:45

+0

它會工作可靠,你只需要重新組裝你的字符串;) – viraptor 2013-02-19 09:30:48