2011-08-15 76 views
0

在計算機上,我想運行由服務器提供的基於Web的應用程序,並且此應用程序必須訪問RFID閱讀器。通過計算機從服務器訪問RFID閱讀器

我已將此計算機設置爲通過無線局域網連接到服務器,並通過以太網電纜連接到RFID閱讀器(試過直通和交叉電纜)。由於所需的移動性,讀取器無法直接連接到服務器。

設置連接將出現在下圖中。服務器使用DHCP爲計算機分配了IP地址。計算機和閱讀器之間的連接已由靜態設置。

enter image description here

顯然,計算機可以訪問服務器和讀者,但正如我所需要的服務器無法訪問的讀者。

編輯:

該應用程序開發使用Python與Django框架。要連接到閱讀器,我只是簡單地使用socket

import socket 

HOST = '192.168.1.21' 
PORT = 50007 
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
soc.settimeout(2) 
soc.connect((HOST, PORT)) 
+0

你做對OS /編程語言等沒有什麼 - 這不是一個網絡問題...但一可以/應該由軟件解決的問題...請提供更多信息 – Yahia

+0

@Yahia我剛剛編輯了我的問題,提供了有關我的應用程序的更多信息。請再看一遍。 – Protocole

+0

謝謝...看到我的答案在下面... – Yahia

回答

0

我會實現一個java-applet並將其上載到服務器上。當用戶從這個服務器打開一個頁面時,java applet加載並開始工作。 Applet在用戶的計算機上運行,​​可以訪問RFID閱讀器,並將這些信息傳遞給服務器。

如果訪問RFID閱讀器需要涉及dll庫或任何本機操作系統模塊,那麼這個小應用程序必須簽名。使用Java SDK中的keytool和jarsigner工具在將applet上載到服務器之前對其進行簽名。

Here you can find information on java networking

And here you can find information on java applet technology

0

它取決於多種因素,如「這只是一次性的東西/一個讀卡器+一臺電腦」?或者它是你計劃推出的某些應用程序等。

「乾淨的解決方案」將作爲@Rafael指出使用一些客戶端代碼,無論是Java applet,ActiveX還是基於Flash的代碼。 。任何這些都不容易得到正確的,是安全敏感的,需要特別注意...

如果你有一個「一次性場景」,這是允許凌亂(不適用於部署/推出等! )則可以執行以下任一操作:

  • 更改網絡配置並創建路由以使計算機成爲RFID掃描器的「中間人」

  • 安裝一些隧道,它允許服務器通過計算機

  • 與掃描儀通信的計算機上(SSH隧道)使用一些HTML5的WebSocket(瀏覽器/版本依賴性,請參閱http://dev.w3.org/html5/websockets/)的方式在你的Web應用程序,並嘗試從掃描儀這種方式讀取數據,並將其轉發給服務器