gpt4 book ai didi

linux - Windows 主机与 Linux Docker 容器之间的通信

转载 作者:IT王子 更新时间:2023-10-29 00:38:00 27 4
gpt4 key购买 nike

enter image description here我有以下问题。我在 Windows 主机系统上有一个软件,它模拟了这台计算机上的 com 接口(interface)。现在我想在这个软件中提供一个 API/Socket/Pipe,它接受一个通过 LAN 传输的字符串。

提交软件应该是一个 .net 核心 web 应用程序,它作为 docker 容器 (Linux) 托管在 kubernetes 中。

我可以使用哪种技术在 Linux 容器和 Windows 主机之间进行通信。

  1. 命名管道 -> 我认为它们在 Linux 下不可用?
  2. 套接字?
  3. 尝试在 windows 主机上打开一个网络服务器以通过 http 访问?

您的想法是什么?为什么您更喜欢某个解决方案?

最佳答案

Linux 确实有命名管道,虽然不同操作的确切语义不同,但您会遇到的问题是命名管道不能用于不同系统之间的通信。命名管道是运行在同一台机器上的进程的进程间通信。请注意,Windows Host 和 Linux Guest 在这里被视为两个独立的系统,即使它们位于同一物理机器中也是如此。

TCP 是最通用的套接字形式,是两个操作系统之间连接的标准方式。如果您不知道为什么要使用其他协议(protocol),TCP 通常是一个不错的选择,因为它几乎可以连接所有内容。

现在唯一的问题是您要使用什么应用程序级协议(protocol),以及您是否要添加任何安全层(即 TLS)来加密和验证机器之间的连接。如果你有一个只需要传输简单字符串的简单服务,那么你可能可以直接使用 TCP/TLS 套接字,但如果你想从标准化的用语、技术、库和框架中获益于各种事情,比如通信请求和响应状态、身份验证、乐观锁定、缓存、代理、 session 管理、任意长度流编码等,然后在 HTTP/HTTPS 之上构建通信是明智的做法。您会发现现在很多服务都是作为 Web 服务构建的,因为当您需要扩展和使用这些功能时,它会使事情变得简单得多。

关于linux - Windows 主机与 Linux Docker 容器之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53388011/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com