一个程序对应于另一个c+的位置+; 我有两个程序,如果在机器A上有一个程序“本地”,在机器B上有一个“远程”,那么程序“本地”如何在Windows环境下找出它们是否在C++中运行在同一台机器上或不同的机器上。< /P> < P>从“本地”到“远程”发送“自”的IP地址?或者让“远程”将其IP地址发送到“本地”。然后与“它自己的”IP地址进行比较。如果它们相同,则必须是同一台机器[或者该机器有多个网卡连接到同一个整体网络]

一个程序对应于另一个c+的位置+; 我有两个程序,如果在机器A上有一个程序“本地”,在机器B上有一个“远程”,那么程序“本地”如何在Windows环境下找出它们是否在C++中运行在同一台机器上或不同的机器上。< /P> < P>从“本地”到“远程”发送“自”的IP地址?或者让“远程”将其IP地址发送到“本地”。然后与“它自己的”IP地址进行比较。如果它们相同,则必须是同一台机器[或者该机器有多个网卡连接到同一个整体网络],c++,windows,networking,process,C++,Windows,Networking,Process,询问其他特定于机器的ID,如mac地址、硬盘ID等 有无数种不同的方法可能有效,也可能无效,这取决于您实际要做的事情 根据评论进行编辑: 如果要检查程序在同一台机器上是否可用,可以使用“命名管道”或其他命名IPC机制,只需检查命名IPC在本地机器上是否可用。如果不是,则使用远程机器机制(例如TCP/IP) 我实际上是在寻找,如果我有两个程序发送 然后,如果一个进程与另一个进程是本地的,它们将 使用本地ipc方法,但如果它们位于远程位置,则使用tcp/ip。所以 我如何检测程序,然后使用它来决定哪

询问其他特定于机器的ID,如mac地址、硬盘ID等

有无数种不同的方法可能有效,也可能无效,这取决于您实际要做的事情

根据评论进行编辑:

如果要检查程序在同一台机器上是否可用,可以使用“命名管道”或其他命名IPC机制,只需检查命名IPC在本地机器上是否可用。如果不是,则使用远程机器机制(例如TCP/IP)


我实际上是在寻找,如果我有两个程序发送 然后,如果一个进程与另一个进程是本地的,它们将 使用本地ipc方法,但如果它们位于远程位置,则使用tcp/ip。所以 我如何检测程序,然后使用它来决定哪一个 使用的通信方法


首先尝试本地IPC方法。如果它们不起作用,请切换到TCP/IP。

我实际上是在寻找类似的东西,如果我有两个程序互相发送数据,那么如果一个进程是本地的,那么它们将使用本地ipc方法,但如果它们位于远程位置,则使用TCP/IP。那么,我如何检测程序,然后使用它来决定使用哪种通信方法好的,基本上根据您的编辑,您的意思是我应该在每个程序上运行一个命名管道,然后检查它是否在同一台机器上..但是我的其他程序对管道一无所知。所以我必须向检查,我怎么做?我的意思是“命名管道”是你的本地通信。显然,管道是由通信的一侧创建的,而另一侧尝试打开管道。如果管道不存在,则此机器上没有“另一端”。通常,创建管道的是远程端,本地端尝试连接到该管道。但是如果你愿意的话,也可以用另一种方式。但是我不能先检查一下,然后再决定如何沟通吗。因为我尝试了getpeername,但它需要服务器端的连接才能被接受,所以基本上连接已经启动,但我想在找到本地或远程后启动通信。您需要提供更多信息。除非你已经建立了一种沟通方式,否则他们如何“了解”彼此(这当然可以揭示他们是否是本地人)?或者你只是想知道“我的应用程序在这台机器上运行吗?”事实上,我已经在下面的评论中解释了我的基本需求。