簡體   English   中英

服務器上的C ++代碼,在客戶端計算機上運行

[英]C++ code on server, running on client machine

是否可以編寫C ++代碼與服務器接口,但要在客戶端執行,而要在瀏覽器上執行,而不是在本機上執行?

例如,想像一下使用開源類,以便生成文件。 但是,由於您不希望所有這些工作都在服務器上完成,因此可以在瀏覽器上運行它。

這樣,客戶端就可以提供一個或兩個或多個文件作為輸入,然后代碼在其計算機上運行,​​產生最終結果,然后將該文件上載到服務器上的數據庫。

請參閱google native client project。 http://code.google.com/p/nativeclient/

這是一個奇怪的問題。

您可以准備在客戶端執行您要完成的任務的二進制文件,並使服務器在要求時將適當的二進制文件發送給客戶端。 客戶端然后運行此二進制文件並將結果返回到服務器。

如果您知道客戶端計算機的配置(二進制文件必須在它們上面工作),則有可能。 此外,還必須實現一些安全層-您不想讓每個二進制文件都在客戶端上運行(想象一下,當在客戶端上運行某些惡意代碼時,中間人攻擊)。

我認為您的要求與服務器端編程背后的思想背道而馳。 使用服務器端程序的主要目的是以受控方式使用基礎結構組件,例如數據庫,網絡等。 (服務器端應用程序的最典型用法是帶有服務器端編碼的網站,例如JSP和ASP。)

由於服務器是要保證安全的機器,因此不應允許遠程應用程序進行更改或自由訪問文件系統。 如果要在服務器上進行更改(例如執行數據庫操作或讀取/寫入文件),則應使用在服務器上運行的應用程序或向遠程客戶端應用程序提供Web服務或網站之類的界面。

因此,如果您想在瀏覽器上進行工作,然后將結果發布到服務器數據庫中,則有兩種解決方案。

首先,您必須設置服務器以准備進行數據庫工作。 我已經使用MEAN堆棧完成此操作,設置了MongoDB並將其與Mongoose API接口。

現在,對於問題的實質,有許多瀏覽器進行大量工作的示例。 這些應用程序中的大多數不是C ++,而是Javascript。

如果您真的想專注於C ++(就像我過去一樣,當時我問這個問題,想為大學做點大事),那么您可以執行以下一項操作:

*使用Google Native Client(NaCl)。 這是一個沙箱,用於獨立於用戶的操作系統,在瀏覽器中高效安全地運行已編譯的C和C ++代碼。 *也許您應該要查看Emscripten,這是將C和C ++代碼轉換為jaascript的框架。 這樣,您就可以使C或C ++二進制文件起作用,並將它們轉換為Javascript,以便它們也可以在瀏覽器中起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM