我目前正在设计一个由单个服务器进程和多个客户端进程组成的系统。服务器和所有客户端将在同一登录会话中运行在同一台机器上。这些进程将通过纯 HTTP 相互通信。
其他用户不应干扰或收听此通信。该设计应该很容易在 Windows 和 *nix 系统之间移植。
当一个用户打开一个 TCP 端口并且只监听 loopback-interface 时,在同一台机器上登录的其他用户仍然可以连接到这个端口。
虽然 HTTP 通常使用 TCP 作为其传输层,但任何提供可靠和有序流传输的东西都应该可以工作。因此,为了确保通信仍然仅限于单个用户,切换到命名管道似乎是个好主意。然而,命名管道的语义在 Windows(双工、单一名称和接收端)和 POSIX(单工、单独名称和接收端)之间有很大不同。此外,大多数现有的 HTTP 实现不支持使用 TCP 以外的方式进行传输。
我还缺少其他一些可移植的每用户进程间流传输方法吗?或者我是否可以以某种方式使 TCP 端口只能由特定用户访问?