我对服务器编程比较陌生,但我阅读了一些有用的教程。我有这个问题:
处理多个客户的最佳方式是什么?
我读到有几种解决方案,但我不知道其中一些对于我的应用程序来说是否过于复杂。我必须在微控制器上使用 C 代码(因为我已经拥有库),并且我需要一个 Web 服务器来定期监控某些传感器接收到的一些数据(每个传感器的温度和湿度)。我可能还想向客户发送一些数据。一些帮助我阅读此内容的示例代码和链接将非常有帮助。谢谢
如果 Web 服务器是 Microsoft IIS,则可以使用 ISAPI/CGI/FastCGI。基本上,您必须编写一个 DLL(在本机代码中,例如 C),其中包含为每个用户请求调用的函数,并生成一个输出。我认为这是最合适的方式,因为这些库(用于微控制器和传感器)也在 C 中,正如您所提到的。
还有一点需要注意的是,为了防止崩溃,IIS 使用进程隔离(如果我完全记得这个词的话),这意味着 DLL 是在每个请求的不同进程的上下文中调用的,而不是作为线程调用的。这在性能/资源管理方面可能不是很好,例如,如果您希望库只连接到硬件一次(在初始化期间)。不确定是否提供了创建线程(而不是单独的进程)的机制,因此请查看文档。否则,您可以创建另一个 DLL 并通过进程间通信技术(例如管道)连接到它,但这当然是额外的工作。
希望这可以帮助。