草庐IT

异步通信

全部标签

c++ - Windows调用的DLL与主程序如何通信?

我正在尝试将SNMP代理集成到用nativeC++编写的Windows应用程序中。要使此代理成为WindowsSNMP代理的子代理,必须编写一个DLL来导出某些由WindowsSNMP服务调用的例程。到目前为止一切正常。现在这个DLL需要从应用程序中获取实际信息。我的第一个想法是让应用程序和DLL使用双方都可以访问的共享内存块,但这会使信息总是略显陈旧,最好在SNMP请求进入时运行一些代码来获取最新值。双方将读写信息。该应用程序已经有一个基于TCP的控制台接口(interface),但是对于来自SNMP客户端的非常频繁的请求,连接、查询、断开连接可能有点繁重。让DLL直接与应用程序通信

c++ - 在异步模式下使用的 WinHttp - ERROR_INTERNET_CANNOT_CONNECT 如何干净地关闭连接

我在请求的回调过程中得到很多ERROR_INTERNET_CANNOT_CONNECT(12029代码)。我在异步模式下(在服务器上)使用WinHttp。在这种情况下,您如何干净地关闭连接。你只是使用这样的东西(就像你通常关闭连接一样?):::WinHttpSetStatusCallback(handle,NULL,0,0);::WinHttpCloseHandle(this->handle));我问这个是因为我在描述的情况下发生了一些与winhttpdll相关的奇怪内存泄漏(想要创建数百个可能被公司内部防火墙阻止或目标服务器丢弃连接的并发连接)。我已经在msdn上查看了WinHttp

c - 在 Windows 上安装定时器/时钟 ISR - 单线程环境中的异步调用

我正在改进一些代码,这些代码模拟了x86Windows系统上的上下文切换调度程序。该程序使用一些古老的BorlandC编译器在WindowsXP(编辑:可能不是Windows7)上编译,并且正在移植为MSVC可编译。有一次,代码通过dos.h中的这些不可用函数安装ISR:void(*)()getvect(int)voidsetvect(int,void(*)());具体来说,代码为(循环)定时器中断安装了一个ISR。这些电话是:tick_isr_old=getvect(0x08);setvect(0xF2,tick_isr_old);setvect(0x08,(voidinterrup

c++ - Windows 中的串行通信 - ClearCommError 在读取缓冲区中找不到数据

我想使用串行通信(使用USB到RS232转换器)将数据从笔记本电脑(windows7,处理器2.60GHz)发送到台式机(windowsxp,处理器3.10GHz)。WriteFile函数能够从笔记本电脑发送数据(NumberOfBytesWritten是正确的)。但是在桌面端,ClearCommError检测到读取缓冲区中没有数据。这是我桌面上的相关代码:while(1){ClearCommError(hPort,&dwErrors,&commStatus);if(commStatus.cbInQue!=0)ReadFile(hPort,&data,1,&dwBytesRead,NU

php - WINDOWS系统下从php页面异步执行php脚本

我已经搜索了几个类似的问题,但没有找到适合我的答案,尤其是Windows系统。我已经在Windows机器上安装了PHP和Apache。我有一个调用Page1.php的应用程序。在Page1中,我执行了一些代码,并且在特定点我想启动另一个php脚本,让我们异步调用它Script.php。我不需要将任何参数传递给第二个脚本-如果可以的话它可能会有帮助但它不是强制性的-我不需要等待脚本完成因为我不想保留与用户的沟通,因为脚本对文件进行了大量操作,并且可以持续很长时间。我已经看到并尝试过基于exec、popen、shell、系统等的答案......但我还没有找到适合我的答案,也许是因为我在Wi

linux - 操作系统内核是否以与 IPC 相同的方式与进程通信?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion进程使用variouswaysofIPC(interprocesscommunication)与另一个进程通信,例如共享内存、消息传递、信号?我了解到anOSkernelcancommunicatewithaprocessusingsignals,如果我是对的,通过相同的信号发出信号也是IPC的一种方式。操作系统内核是否使用其他IPC方式(例如共享内存、消息传递)与一个或多个进程通信?如果需要具体一点,我

C++ 从异步线程更新 Windows 窗口

所以我刚开始使用C++并想创建一个带有按钮的窗口,该按钮启动一个异步线程用于一个从5计数到0的计数器,代表一个耗时很长的任务。该数字应该已经显示在窗口上,并且在计数器计数时每秒更新一次。为此,子线程必须以任何方式与主窗口线程的消息循环进行通信。我试图通过以下方式做到这一点:使用主窗口的窗口句柄发送UpdateWindow使用主窗口的窗口句柄发送PostMessage但在这两种情况下,窗口都不会更新。因此,我怀疑通过将窗口句柄从主线程发送到子线程或将UpdateWindow消息从子线程发送到主线程或两者都发生错误,或者我完全偏离轨道并且一切都是错误的。也许我的思路也是错误的,我应该换一种

node.js - 在与本地网络服务器通信的 Electron 应用程序中实现 socket.io

我必须让本地运行的Web服务器与本地运行的WindowsElectron应用程序通信,以便发送一些消息,Electron应用程序会将其显示为通知。我看到有人推荐使用socket.io进行客户端和服务器之间的实时通信,但我发现很难理解它,因为没有我可以研究的示例来了解它的实际工作原理。欢迎提供有关此主题的任何来源和解释。 最佳答案 只需通过thistutorial.从简单的网络开始。当你让它工作时-将它移植到Electron。 关于node.js-在与本地网络服务器通信的Electron应

windows - 通过 IOCP 的串行通信

是否可以将IO完成端口用于串行I/O?根据WindowsviaC/C++的说法,它暗示了这是可能的,并且确实给出了一个使用IOCP与物理文件的示例,显示了与CreateFile、ReadFile、WriteFile等的工作。然而,这实际上可以与串行通信一起工作——有没有人得到有用吗?我在网上找不到任何这方面的例子,但我不能第一个尝试吗? 最佳答案 是的,将I/O完成端口用于串行I/O工作正常。为适合IOCP的串行端口创建文件句柄需要一些设置工作。但是一旦设置完成,您就可以执行异步操作ReadFile()和WriteFile()与常规

windows - 如何加速 Windows XP 应用程序中的 UDP 通信

我正在对软件进行维护,遇到一个我不明白的问题。应用程序是使用MicrosoftVisualC++6开发的,可在WindowsXP上运行。它由21个应用程序组成,这些应用程序通过UDP套接字相互通信。它是一个嵌入式航空电子系统的模拟,用于在PC环境中调试系统。每个应用程序模拟嵌入式系统中的一个节点,嵌入式网络通过UDP进行模拟。该系统最初在多台PC上运行,但现在可以在一台四核机器上运行。系统正在运行,但通信速度慢得令人讨厌。但是,打开InternetExplorer并访问一两个网站会设置一些东西,这会导致我的应用程序之间的通信突然变得非常快。所以我的问题是InternetExplorer