2015-06-04 28 views
0

我正在編寫客戶端 - 服務器類型的應用程序。服務器端收集來自其他硬件的不斷變化的數據,然後需要將其傳遞給多個客戶端(比如約10)以供顯示。服務器數據收集程序將用Python 3.4編寫並在Debian上運行。客戶端將使用運行在Windows上的.net framework 4上的VB Winforms進行構建。爲許多客戶端提供動態數據

我的想法是在服務器端運行輕型Web服務器,並在客戶端使用system.net.webclient.downloadstring調用來接收它。這是所有的多線程異步的東西是由我的網絡服務器完成的。

問題:

  1. 這個問題似乎是一個好方法嗎?
  2. 讓我的數據收集程序寫Web服務器的文本文件似乎沒有必要。有沒有辦法讓內存中的數據和服務器只是服務,所以沒有磁盤文件中介?設置虛擬硬盤是我想到的一個解決方案,但這看起來像是矯枉過正。
  3. Web服務器如何處理頻繁更新的數據,比如每秒一次?網站服務器是否優雅地處理這個問題,或者是否有機會在文件被寫入時提供服務?

感謝。

回答

0

1)我不是很熟悉Python,但對於.net應用程序,您可能希望將更改通知推送給它,而不是拉。 system.net.webclient.downloadstring是一個請求(拉)。由於我不是Python開發人員,所以我無法提供幫助。

3)當您請求數據時,可能會在更新和讀取的同時創建一些讀/寫錯誤。即使這種情況沒有發生,您讀取數據時可能會過時。這可能是一個可以接受的問題,這取決於數據的重要程度。

這就是爲什麼我會做推送通知,而不是拉。如果工作正常,這可以保持數據同步並避免一些時間問題。

+0

dmshow:謝謝你的幫助。我看不出爲什麼從服務器推送到客戶端會更好。你能配合嗎?數據的年齡並不重要,但是通過從客戶端讀取一半數據來改寫數據,會對數據造成一定的損壞,這是一個問題。 – Guy