连接c++程序和Java API
Connecting C++ program with Java API
我有一个c++ AES算法程序,我用它来加密同一台机器上的文本文件。现在我正在增加它的功能,通过使用一个web应用程序,从不同的机器上传新文件到那台机器。
我的web应用程序是由java组成的,它将通过API链接到服务器机器(这也是基于java构建的)。当用户点击上传按钮(出现在web应用程序上)时,调用API,它将在服务器机器上上传文件。到目前为止,工作进展顺利,因为我已经成功地从不同的机器(目前在同一局域网)接收了服务器机器上的文件。
然而,现在我被困住了。我想让我的c++程序以某种方式,自动地知道机器上有一个新文件,从那里获取它并加密它。但如何做到这一点呢?
在我理解之前,我认为也许可以使用JavaScript,但我真的不知道它是如何工作的。
如果我需要提供更多的细节,请告诉我。任何指导将是非常感激!谢谢! !
纠正我-您的Java程序下载文件并将其放入某个已知位置?那么,为什么不直接为c++应用程序创建JNI包装器(jar库),然后在下载成功后,将lib/path/告诉/file并对其进行加密呢?
也许你也可以加密你接收的字节流,并将已经加密的字节写入磁盘?
如果我理解正确的话,这可能会对你有所帮助:https://msdn.microsoft.com/enus/library/windows/desktop/aa365261 (v = vs.85) . aspx
下面是一个工作示例:
#include <windows.h>
#include <stdio.h>
#define DIR_PATH L"C:''temp''files"
void encrypt(WCHAR* fileName);
OVERLAPPED overlapped = {0};
union {
FILE_NOTIFY_INFORMATION i;
char d[sizeof(FILE_NOTIFY_INFORMATION)+MAX_PATH];
} fni;
int main()
{
HANDLE hDirectory;
BOOL res;
DWORD bytesReturned;
// Create handle for the directory
hDirectory = CreateFileW(DIR_PATH, FILE_LIST_DIRECTORY | GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED | FILE_FLAG_BACKUP_SEMANTICS,NULL);
overlapped.hEvent = CreateEvent(0,0,0,0);
// Monitor as long as running
while (1)
{
res = ReadDirectoryChangesW(hDirectory,(LPVOID)&fni,sizeof(fni),FALSE,FILE_NOTIFY_CHANGE_SIZE,
&bytesReturned,&overlapped,NULL);
// Error checking
if ( res == 0)
{
printf("error: %d'n",GetLastError());
return 1;
}
// check if a new file has been created in the directory
GetOverlappedResult(hDirectory,&overlapped,&bytesReturned,TRUE);
if (fni.i.Action != 0)
encrypt(fni.i.FileName);
}
}
//This is the encryption function
void encrypt(WCHAR* fileName)
{
wprintf(L"Encrypting code here!'nFileName=%ls'n",fileName);
}
只需替换DIR_PATH并编辑加密函数
(我在这里的第一个答案btw ^^)
相关文章:
- 当没有互联网连接时,谷歌地图Java脚本API处理
- Google 日历 API V3 会解决与会者和创建者 Java 脚本问题
- 使用Java脚本访问多个Google日历-Google日历API
- Calling Java Web API from Javascript
- 如何使用AngularJS将多个参数发送到JAVA API
- 使用 Java 脚本 SDK 的 Facebook API 发布操作
- 什么是Java EE Web应用程序中图表和图形的最佳API和工具
- 从客户端上的 javascript 调用 Java API(无 Web 服务)
- 使用 Java Scripting API w/ JavaScript 和/或 Lua
- TrueMD API不能在java servlet中工作
- 使用java javascript脚本API操作HTML节点
- 谷歌地图Api Java脚本
- Couchbase Java API和javascript视图未返回特定密钥的值
- 如何使用vert获取服务器通知(推送通知)到客户端.X Java api
- 如何处理JavaScript中的异常,如果在执行本机java API时抛出任何异常
- 如何从nashorn引擎中删除java api
- 从java api生成Braintree客户端令牌会产生异常
- 连接c++程序和Java API
- 使用URL从html表单操作调用Java API时返回的响应
- 使用Java API格式化JavaScript