草庐IT

多线程通信

全部标签

java - 从 Java 应用程序通过 RPC 与 Windows 进程通信

我希望通过RPC与Windows进程通信。我要与之通信的应用程序是使用VisualStudio2008在C++中开发的。该应用程序通过idl文件提供其接口(interface),然后使用Microsoftmidl工具进行编译。此应用程序已经开发,无法修改。我希望通过我用Java开发的第二个应用程序与该应用程序进行通信。Windows应用程序提供的功能是否与RPC的任何Java实现兼容?根据我在MSDN上的阅读,Window应用程序提供的RPC是DCE兼容的。除了12年以上的几篇讨论MSjvm的文章外,我没有成功找到有关Java中DCE/RCP的详细信息。我也没有成功使用idl从Wind

Android:如何与 Windows 桌面应用程序通信?

谁能告诉我如何将Android设备连接到Windows桌面应用程序并以编程方式与其通信的基本概念?基本上,我希望我的应用程序通过wifi或USB在Windows应用程序之间同步数据。我该怎么做呢?Android市场中的WOWebcam应用程序(https://market.android.com/details?id=com.uwebcam&feature=search_result)就是一个例子我不知道该怎么做,所以任何基本概念都会有所帮助。 最佳答案 在我过去,我曾使用过此类应用程序并使用Wifi来确保我的Android应用程序

使用 LiveConnect 的 Javascript 到 Java 通信不起作用

我一直致力于一个项目,该项目需要在Java和JavaScript之间进行双向通信。我已经成功地让它在OSX的所有浏览器下运行,但我现在面临着让它在Windows上的任何浏览器下运行的挑战。目前它根本不起作用。我只是想知道是否需要做一些特殊的事情才能使JavaScript与Java通信?我的小程序代码如下所示:Yourbrowserisignoringtheapplettag.加载小程序后,我会尝试像这样调用它的函数:alert("Callsomejava:"+theApplet.testFunc());并且在firebug控制台中出现以下错误:theApplet.testFuncisn

windows - 套接字在同一台 PC 上的通信是否比使用共享内存慢得多?

我有一个向外部应用程序提供视频的WindowsDLL。我的主应用程序创建每个视频帧,我使用由系统页面文件支持的全局共享内存将该帧传递给DLL。视频帧随后由外部应用程序检索并显示。我不拥有外部应用程序,只有它加载以从中获取视频的DLL。我正在考虑切换到基于套接字的方法来在我的主应用程序和DLL之间进行通信,并摆脱共享内存方法。我不喜欢看到“软页面错误”堆积如山,因为每次我向它写入新的视频帧时,我都会重复使共享内存位置无效。我相信软页面错误是无害的,只是所涉及的内存分页的副作用,但没有它我会更舒服。由于视频的传输帧速率约为每秒25帧,因此我有大约1/25秒的时间来传输帧。这些帧绝不会大于6

windows - 来自另一个线程的套接字关闭调用是否总是使阻塞的 recv() 线程唤醒?

我找不到太多的文档来说明这是否应该发生:某个线程打开一个TCP(或其他流)套接字线程1开始阻塞recv()线程2使用SHUT_RDWR(或者我认为是SHUT_RD)在套接字上调用shutdown()线程1现在从其阻塞调用中“醒来”,并返回零,就像另一方关闭其套接字时一样。此行为出现在现代Linux和FreeBSD系统上。我还没有用任何其他人测试过它。这里是对MicrosoftMSDN帮助页面的评论:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspx表明此行为在Windows

c++ - 使用 native Windows API 的 win32 线程安全队列实现

由于windows缺少条件变量(虽然从vis​​ta开始引入,但windowsXP和2003不支持),用c++实现线程安全的队列不是很容易。StrategiesforImplementingPOSIXConditionVariablesonWin32.我需要的是只使用CriticalSection或Mutex和Event,而不使用信号量和条件变量。我也试图找到一个只使用win32nativeAPI的确切实现,但没有成功。所以我自己完成了一个。问题是我不是100%确定代码是线程安全的。谁能告诉我好不好?classCEventSyncQueue{public:CEventSyncQueue

两个线程能否同时读取同一个const内存块

内存块在程序开始时被初始化和设置并且没有改变(CONST)。例如:静态常量inta=10;如果它依赖于环境/架构,那么这些设置是否安全:英特尔/AMDWin/Linux32/64位每个核心的线程或一个核心的所有线程。 最佳答案 对于所有架构读取const都是安全的 关于两个线程能否同时读取同一个const内存块,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12337926/

python - 异步 I/O 多路复用(套接字和线程间)

我想让一个Python线程等待来自一个套接字(串行端口、TCP/IP等)的数据,或者等待来自另一个线程的数据。我想要一个可移植的Windows和Linux解决方案。我正在寻找类似于select.select()的东西,但我相信我不能在Windows上使用select.select()进行线程间通信。这容易实现吗? 最佳答案 你确定有必要使用线程吗?您是否正在使用一些需要使用它们的外国API?无论如何,使用Twisted,您可以轻松地监听任何文件,如可移植的(包括串行端口和TCP套接字)。此外,假设您确实需要使用线程,Twisted提

java - Windows cmd通信的实现方法——多条命令

我试图找到一个解决方案,如何实现多命令-与Windowscmdshell的响应交互。示例:启动cmdshell“目录”等待并处理输入根据输入的内容执行新命令等待并处理输入等等请注意!上面的步骤只是描述通信方式,我并不是要浏览文件系统,即实际命令可能是其他的。到目前为止的方法:try{Runtimert=Runtime.getRuntime();p=rt.exec("cmd");error=p.getErrorStream();input=p.getInputStream();output=newPrintStream(p.getOutputStream());StreamGobbler

c# - 在我在同一进程中创建的所有其他线程死亡后停止线程

我正在尝试编写一个任何进程都可以用于日志记录的库。我想在我的类中有一个专用的工作线程,它通过某种机制(管道、TCP套接字等)将日志消息写入远程机器上的另一个进程,以便日志构造函数的代码看起来像这样(这样做的原因)这样一来,如果日志服务器在远程计算机上关闭,您就不会阻止正在日志记录的线程停止执行):publicLogWriter(){queueWriter=newThread(()=>{while(messageQueued.WaitOne()){Messagemessage;while(messageQueue.TryDequeue(outmessage)){boolsuccessfu