草庐IT

异步通信

全部标签

c++ - 如何使用 C++ 与命令提示符 (CMD) 通信?

我有一个应用程序需要向cmd发送命令,然后取回输出(捕获输出)。如何在不使用任何MSWindows特定API的情况下使用C++完成此操作?有没有一种方法可以做到跨平台(例如,对于linux终端)?顺便说一句,我正在使用WinXPSP3。我实际上是指重定向输入/输出。例如,在cmd上运行命令“make”,然后在发生错误时捕获错误消息(重定向到我的应用程序)。 最佳答案 如前所述:如果您可以避免在您的程序中启动子进程,而是适应更广泛的“工具箱隐喻”,那通常会更好......http://en.wikipedia.org/wiki/Uni

windows - lua lane 线程间通信

有没有办法让luachannel线程进行通信或从外部访问线程?不使用文档提供的繁忙循环。一个简单的例子是,一个线程使用一个变量,更新它,改变它等等,另一个线程或主程序能够访问/获取该变量。这可以用luachannel吗?我的意思是纯粹在lua中而不是在c/c++中。 最佳答案 在使用多线程时,您通常donotwantto"update/change"avariablefrommultiplethreadswithoutanysynchronization-这可能会导致由于对变量/表等的不同步访问而导致随机出现的错误。相反,您应该依靠

c# - 等待异步操作完成

我有一个关于异步方法如何在C#上工作的问题。我正在尝试使用convertAddressToCoordinate方法将myLocation变量设置为GeoCoordinate。但是,甚至在设置myLocation值之前调用compareDistance方法。在调用compareDistance()之前如何确保myLocation值不为空?publicGeoCoordinatemyLocation=null;publicvoidreturnClosestCurrent(stringaddress){convertAddressToCoordinate(address);compareDis

解决---设备“VMnet0”上的网桥没有运行。该虚拟机无法与此主机或网络上的其他主机进行通信。 无法连接虚拟设备“Ethernet0”。

问题描述:\quad\quad由于之前安装过VMware,但是卸载后从新安装导致虚拟机的虚拟网络编辑器没有桥接模式,即只有网络适配器网络类型VMnet1Host-only(仅主机)VMnet8NAT\quad\quad这导致你所安装的虚拟机(如Ubuntu)就不能与你的电脑再同一个网段,也就是虚拟机与你的电脑不能够互相ping通,你的虚拟机里面就不能够上网。而如何从新安装好桥接模式就是我们所迫切需要解决的问题。原因分析:主要是我们之前安装过VMware,卸载后没有卸载干净。且我们需要安装的是桥接服务而不是网卡\quad注意:仅仅在VMware左上角的编辑中点击虚拟网络编辑器并通过添加网络添加V

c++ - 异步 Windows 控制台输入同时输出

我在尝试读取输入的同时输出时遇到问题。我的游戏需要一个服务器控制台,它可以在输出的同时接收输入并且不会弄乱缓冲区。例如,我正在输入“Helloworld”,在此过程中,玩家死亡、击杀等信息被输出到控制台,结果如下:Hello*PlayerkilledPlayer2*world提前致谢 最佳答案 为什么不生成一个GUI窗口,而不是直接将输出写入控制台?然后,只有一个区域用于输出,底部有一个单独的输入区域,您可以在其中键入命令。有点像irc客户端的样子。如果它只能是控制台,我会建议使用ncurses(或PDCurses)之类的东西来创建

windows - 一些实现命名管道通信的来源 btw 服务应用程序或帮助

我正在实现我自己的命名管道客户端/服务器类,但我遇到了太多麻烦,而且在Internet上没有太多相关信息。我已经找到了很多使用管道但使用vlc应用程序的实现,但我正在使用服务应用程序。我也接受有关如何使用管道的提示。我的实际问题是:当服务器应用程序只从客户端收到一条消息时,此后我的服务器不能再使用PeekNamedPipe()了。我从GetLastError收到的错误消息是“管道的另一端有一个进程”,但是......我不知道如何解决这个问题。如果我关闭客户端应用程序,我收到的消息是“管道正在关闭”,此后我无法建立客户端通信。谢谢 最佳答案

C++ Win 异步套接字。是否可以中断 select()

我有一个监听线程,等待使用select和FD_SET在几个套接字上读取。故事是。在某些时候,我将向池中添加另一个套接字,并且需要中止选择并重新初始化FD_SET数组以供选择。我有一个事件来指示池更改。但是select如何对我的事件使用react?select()此时使用timeval等待间隔为20秒,我不想将时间更改为较低的值。我不想频繁地重新启动select()超时...有什么办法可以中止选择吗?通知/重新启动选择并强制使用新套接字列表的正确方法是什么(至少一个套接字将被添加到池中)另一个问题-Msdn说“select函数确定一个或多个套接字的状态,必要时等待,以执行同步I/O。”这

windows - Windows 8 应用商店应用程序可以通过 UDP/TCP 套接字与 Windows 7 桌面应用程序通信吗?

详细说明情况:我们有两个应用程序,为简单起见,我们将它们称为A和B。两者都在Windows7上开发和运行,它们可以使用UDP/TCP进行连接和通信。现在我们要将AppB转换为Windows8以利用MetroUI。我们是否需要对AppA中的网络代码进行大量更改?它甚至可以继续在Windows7上运行并与运行在Windows8上的AppB通信吗?据我了解,Win8处理套接字的方式与以前的Windows略有不同,因此我表示怀疑。 最佳答案 只是从不同的角度来看,通信在技术上是可行的,但是explicitlyforbidden(假设您要在W

c++ - 如何在进程间通信中获取其他端点的进程ID

使用Win32C++API,我想知道哪个IPCmethod,允许多进程通信中的任何端点获取与之通信的进程的PID或HANDLE。换句话说,如果进程A从进程B收到一条消息:如果B没有(直接)在发送的消息中给出任何提示,A可以知道B发送了消息吗?如何?要求:B的PID不能在IPC消息中发送给A。通信的目的是简单的远程过程调用。但是,我不希望远程系统/主机上的进程调用本地主机上运行的进程提供的过程。我当然找到了RPCdocumentationonMSDN.但是,我想知道是否有比RPC更好的方法来实现我想要的。或者,如果您认为RPC是可行的方法,能否告诉我原因以及您是否知道除MSDN之外还有其

服务器和客户端是否可以在同一个端口上发起通信并发送命令?

我有一个服务器和一个客户端应用程序,我的服务器监听端口10015和一个向该端口发送命令的客户端。目前两者都在同一台机器上运行,但future的目标是在不同的机器上运行。我现在有这部分工作。接下来我需要做的是让我的服务器也向我的客户端发送命令。所以我想我可以在我的客户端中重新使用我的服务器代码来监听一个端口。但我不确定这是最好的方法。建议?当我第一次尝试这个时,我先运行我的客户端应用程序,然后它向自己发送命令。我的服务器应用程序无法绑定(bind)到端口(我假设您只能让一个进程监听给定端口?)问题1)服务器如何向客户端发送命令?我是否必须在端口10015上创建服务器-->客户端通信,并在