Linux确实有命名管道,尽管不同操作的语义略有不同,但你会遇到的问题是,命名管道不能用于不同系统之间的通信。命名管道是在同一台机器上运行的进程之间的进程间通信。请注意,在这里,即使Windows主机和Linux客户端位于同一物理机器上,它们也被视为两个独立的系统。
TCP是套接字最通用的形式,也是连接两个操作系统的标准方法。如果你不知道为什么要使用其他协议,TCP通常是一个好选择,因为它能够连接几乎所有内容。
现在唯一的问题是你想使用哪种应用层协议,以及是否想添加任何安全层(即TLS)来加密和认证机器之间的连接。如果你有一个只需要传输简单字符串的简单服务,那么你可能可以直接使用TCP/TLS套接字,但是如果你想从各种事情中受益,例如通信请求和响应状态的标准化措辞、技术、库和框架,身份验证、乐观锁定、缓存、代理、会话管理、任意长度流编码等,则在HTTP/HTTPS之上构建通信是明智的选择。你会发现,现在很多服务都是作为Web服务构建的,因为当你需要扩展并利用这些功能时,它会让事情变得更加简单。