c - 如何将 Windows 客户端设置为基于 Web 的 dll

标签 c windows dll client tcpclient

我有一个应用程序,它最初是一个基于 C# 的 Windows GUI,它使用编码与 C DLL 进行通信。

我现在需要将 Windows 客户端和 DLL 分开,以便客户端安装在远程 PC 上并通过 Internet 与 C DLL 进行通信。 更复杂的是我希望有多个 Windows 客户端连接到 C DLL。

这整个世界对我来说都是新的,所以如果以下问题是幼稚的问题,请原谅。

我的问题:

0) 让客户端通过 Internet 与 DLL 通信的最佳方法是什么? TCP/IP 套接字?

1) 我需要修改我的 DLL 以使其为多个客户端提供服务。但我需要一些中间件来收集来自不同客户端的查询,将它们提供给 DLL,然后将结果发送回适当的客户端。是否有任何代码(例如node.js)可以促进这一点?

最佳答案

关于: 让客户端通过 Internet 与 DLL 通信的最佳方法是什么?

您关于使用 TCP/IP 的建议当然可以(并且很可能)成为解决方案的一部分,但解决方案中还会有其他组件。您选择的方向部分取决于您是使用标准编码(marshal)处理 (COM) 还是自定义编码(marshal)处理?至少,您的问题描述表明需要进程间通信的场景。
实现方法有很多种。该图描绘了一种通用方法,根据您的描述可能适用:

进程间通信的组件

enter image description here

Read more here

关于: 修改我的 DLL 以使其服务多个客户端...

该 dll 只是一个与其他文件一样的文件。只要进行读取的进程遵守通用文件访问规则,多个进程就可以读取文件并随后拥有文件中的内容。我不认为你必须修改你的 dll,至少出于这个原因。只需确保访问 dll 的进程符合安全文件访问协议(protocol)即可。 ( Safe file access )。

关于c - 如何将 Windows 客户端设置为基于 Web 的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28963926/

相关文章:

c - 文件指针似乎停止前进

c - 为什么 sizeof(a pointer) 返回不正确的值?

c++ - 提取文件的高分辨率图标或缩略图

vb.net - 将 COM 组件引用添加到 VB.NET 项目时出现问题

c - 为什么 GDB 在写入网络时会中断?

windows - 我可以使用哪些工具来确定我的应用程序的硬件要求?

windows - UWP 在 ItemsControl 项目上添加动画

c# - 动态加载 DLL 中的接口(interface)

c++ - 结合 rand() 和 srand() 以获得更好的性能

c - C 中的 scanf() 期间数据如何从输入流流入输入缓冲区?