我正在尝试做LD_PRELOAD所做的事情,即将Windows上的共享库或DLL文件预加载到给定程序以覆盖某些功能.
是否有LD_PRELOAD
Windows 的等价物?
我没有任何具体的功能.我只知道这在Linux上是可行的,我很好奇如何在Windows上完成本机DLL的重载.
什么是具有以下要求的进程间通信(IPC)框架\技术:
更新1:进程位于同一主机上,并使用相同版本的Python和其他模块
更新2:进程由用户独立运行,其中没有一个产生其他进程
我想实现一个Unix守护进程(让我们称之为myUnixd),并希望用户能够通过命令行与该守护进程交互,例如:
myUnixd --help # will display help information
myUnixd --show # will show some data (the's deamon should be doing the work)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:我如何与守护进程通信?我在想Unix域套接字.有人能告诉我正确的方法吗?
谢谢.
如何使用C#或C++将文本插入另一个应用程序的文本框中?很久以前我这样做了,似乎记得使用应用程序HWND的一些事情.但是,由于应用程序的每个实例的更改,我觉得我不记得完整的故事.我是否以某种方式获得正在运行的应用程序列表,提取我想要的应用程序,从中获取HWND然后......嗯....那么什么?:)
我有以下情况.
我创建了一个管道.
分叉儿童过程.
Child 显式关闭管道的读取结束并写入管道的写入端并退出而不关闭任何东西(退出应该代表子节点关闭所有打开的文件/管道描述符,我推测).
Parent 显式关闭管道的写端,并从管道的读取端读取,fgets
直到fgets
返回NULL.即它完全读取.
现在我的问题是,为什么父母需要在完成读取后显式关闭管道的读取端?一旦从读端读取完整数据,系统是否完全删除管道是不明智的?
我在父语句中明确地关闭了读取结束,并且Too many file descriptors
在打开更多管道时迟早会出错.我的假设是,一旦管道写入结束并且数据已从读取端完全读取,系统会自动删除管道.因为你不能从管道两次!
那么,一旦数据完全读取并写入结束,系统背后的理由是不删除管道?
方法论问题:
我有一个"主"python脚本在我的系统上运行无限循环,我想偶尔发送信息(例如json数据字符串),其他一些python脚本将由我自己或其他程序稍后启动并将在发送字符串后结束.
我不能在这里使用子进程,因为我的主脚本不知道对方何时运行以及它们将执行什么代码.
我正在考虑让主脚本侦听本地端口,并让其他脚本在该端口上发送字符串,但是有更好的方法吗?
首先欢呼所有程序员[今天=程序员日:)]
其次,我正在开发一个项目,其中规范要求使用服务器作为前端和后端的应用程序.该项目是一个先进的智能家居系统.服务器将通过互联网处理来自客户端的命令(比如说来自房子外面的远程控制)并将它们(通过通信通道)发送到应用程序(计划使用JAVA应用程序),这将处理主要逻辑比如控制硬件(灯......),从麦克风(本地麦克风)读取和访问数据库以充当语音识别系统(离线).
现在我还处于规划阶段,我不确定哪个技术最适合这个项目.我正在考虑使用Node.js或Apache作为服务器,使用JAVA应用程序作为后端,并使用任何SQL数据库作为应用程序的SRS.
我希望这个插图清楚地说明了系统的工作原理:
主要问题是:
使Java应用程序与服务器通信的最佳方法是什么(通信通道[必须是双向的])?
你推荐这个工作以外的特定服务器吗?
到目前为止,我的想法是什么:
1- JSP和servlets(使服务器也是应用程序).但我不希望服务器处理离线的东西,我不确定java servlet是否可以访问硬件接口.我还希望服务器与做出关键决策分开(出于安全原因不同的层,因为它不会像本地[离线]系统那样频繁使用).
2-沟通渠道:
A-一个共享文件,但这是一个坏主意,因为我不希望应用程序检查文件内容是否发生了变化(接收到命令)或不时(过度操作).
B-通过端口进行进程间通信(套接字通信)似乎是最好的解决方案,但我不知道在运营成本和通信错误方面会如何转变.
使用的操作系统: Linux Raspbian
编辑:
我确信ZMQ + Apache对于这项任务已经足够好了,但它与WebServices(如SOAP)相比如何呢?WebServices在标准实现和安全性方面是否会成为更好的解决方案?
欢迎所有相关建议,TQ
在PHP中是否有一种方法可以使用"会话外"变量,这些变量不会在每个连接处加载/卸载,就像在Java服务器中一样?
请原谅我缺乏准确性,我不知道如何以正确的方式写它.
主要想法是这样的事情:
<?php
...
// $variablesAlreadyLoaded is kind of "static" and shared between all PHP threads
// No need to initialize/load/instantiate it.
$myVar = $variablesAlreadyLoaded['aConstantValueForEveryone'];
...
?>
Run Code Online (Sandbox Code Playgroud)
我已经做过这样的使用shmop
和其他奇怪的事情,但如果有一个"干净"的方式来做"纯PHP"而不使用缓存系统(我想到APC,Redis ......),也没有数据库.
编辑1:
由于人们(感谢他们花时间陪我)以同样的方式回答我的会话,我添加了一个我错过了写的约束:没有会话请.
编辑2:
似乎唯一的PHP本机方法是共享内存(shmop
)和命名管道.我将使用托管方式访问共享对象,不介意内存管理(共享内存块大小)或系统问题(管道).
然后,我在网上浏览了一个PHP模块/库,它提供了执行此操作的函数/方法:我什么也没找到.
编辑3:
后在路上的几个研究中指出@KFO,看来该putenv
/ setenv
不作出处理对象(我会避免序列化).因此,它解决了诸如字符串或数字之类的短"事物"的问题,但不解决更大的/ comples对象的问题.
使用"env way"和另一种处理更大对象的方法将是不相干的,并增加了代码和维护的复杂性.
编辑4:
发现这个:DBus(GREE Lab DBus),但我没有工具在工作中测试它.有人测试了吗?
我对每一个建议持开放态度.
谢谢
编辑5("答案"):
由于DBus不是我正在寻找的(需要安装第三方模块,没有"严重"的应用证据),我现在正在使用已经证明其可靠性的Memcache(关注@PeterM评论,见下文).
php persistence share shared-memory inter-process-communicat
我有两个程序都是python,一个是第三方,已经制作.我想在前台运行一个,在后台运行一个.我想在两个程序之间建立一个通信,所以我可以告诉前台的那个程序做某事,然后告诉其他程序做某事.比如在前台程序上我按下一个按钮,然后告诉其他程序做某事.回答这个问题的最佳方法是什么?
我知道我之前已经问过这个问题,但是我觉得人们可能发现这个问题太具体了,所以我写了一个更简化的问题.
我启用了父进程和子进程之间的通信,以便按如下方式发送JSON:
儿童:
try {
var price1 = parseInt(process.argv[2]);
if (!price1) {
throw new Error('Price in calculations.js undefined');
}
var result = {
'timeStamp' : Date(),
'prices' : { 'player1' : price1, 'player2' : 666}
};
process.send(result);
} catch (e) {
// In case of an error, I get here as expected.
process.send(e);
}
Run Code Online (Sandbox Code Playgroud)
家长:
var spawn = require('child_process').spawn;
var child = spawn('node', ['calculations.js', 333], {stdio: [null,null,'pipe','ipc']});
child.on('message', function(data) {
if (data instanceof Error) {
// In case of an error, …
Run Code Online (Sandbox Code Playgroud) python ×3
c ×2
ipc ×2
node.js ×2
apache ×1
c# ×1
c++ ×1
command-line ×1
daemon ×1
fgets ×1
hwnd ×1
java ×1
javascript ×1
overloading ×1
persistence ×1
php ×1
pipe ×1
raspberry-pi ×1
share ×1
sockets ×1
unix ×1