1

我正在编写一些包含两个组件的桌面软件。组件 B 查询组件 A。原则上,创建 Web 服务似乎是进行 IPC 的理想方式。数据模型适合,有现成的客户端和服务器库,一种众所周知的编码和解码参数的方法等。

但是在网络套接字上设置 HTTP 服务器似乎不适用于本地应用程序。例如,我选择什么端口?我真的不希望人们能够从外部扫描并与应用程序交谈等。

所以我在想我也许可以通过域套接字执行 HTTP。这有任何意义吗?它有什么优先权吗?是否有可用于 IPC 的等效协议,它具有与 HTTP 相同的属性(对指定资源 (URI) 的请求、编码参数、响应)?

寻找 C 库(可能还有 Go 和 ObjC 以获得奖励积分)。

4

1 回答 1

0

仅绑定到环回接口(127.0.0.1)可以解决您的“外部可见性”问题,只有本地计算机上的进程才能连接。

但是它并不能解决您的端口分配问题,您选择的端口号可能会在您的应用程序启动时被占用。然后您的服务器无法绑定,并且您的客户端连接到绑定到您的端口的另一个进程。

旧的,不那么时髦,但 CORBA 实现往往存在您尚未想到但尚未解决的问题。

于 2012-08-24T22:19:17.970 回答