在C和x2B之间进行通信+;插件和Python程序
我对此有很多疑问,我想我应该问一下。情况如下:在C和x2B之间进行通信+;插件和Python程序,python,sockets,visual-c++,binding,zeromq,Python,Sockets,Visual C++,Binding,Zeromq,我对此有很多疑问,我想我应该问一下。情况如下: 我正在编写一个C++程序,它将被加载到程序“EnnuleSc.exe”中。加载时,程序将向dll提供数据,dll将不断地向先前构建的python程序发送和接收数据。接收并接受数据后,dll将把数据传输给正在运行的应用程序 我正在尝试使用ZeroMQ的套接字解决方案,每个人都在谈论它。问题是,现在已经两周了,我无法在VS2012中使用它。我什么都试过了,甚至在这里,在他们的家里,在邮件列表中打开了一个线程……没有人知道如何解决它 那么,除了ZeroM
我正在编写一个C++程序,它将被加载到程序“EnnuleSc.exe”中。加载时,程序将向dll提供数据,dll将不断地向先前构建的python程序发送和接收数据。接收并接受数据后,dll将把数据传输给正在运行的应用程序
我正在尝试使用ZeroMQ的套接字解决方案,每个人都在谈论它。问题是,现在已经两周了,我无法在VS2012中使用它。我什么都试过了,甚至在这里,在他们的家里,在邮件列表中打开了一个线程……没有人知道如何解决它 那么,除了ZeroMQ,你认为我的情况下最好的选择是什么?我已经在那里搜索和阅读了很多(我不喜欢协议缓冲区,它太复杂了,不适合我想做的事情) 还有一件事。绑定Python/C++(例如使用SIP或ctypes)是一个有效的解决方案还是不符合我的目的?我已经阅读了一些SIP和cType文档,它看起来像我想要的……但同时我想:如果一个C++程序可以加载到Python,那么它的目的是什么?我不知道,我只是被这么多信息弄得不知所措非常感谢您的帮助最简单的方法之一是编写一个简单的Python套接字服务器,它可以执行以下操作:
这种类型的服务器的客户端可以用C++或Python编写,并且可以:
Python在标准库中有极好的库支持,而.NET库如果您决定用C编写客户端或决定使用托管C++,将很好地工作。
<>如果你要编写更多的传统C++(非托管),那么你应该能够找到很多Win32套接字编程的例子,比如.< /p>你能修改预先存在的Python应用程序,或者仅仅限于通过ZrOMQ与它通信?如果您无法更改Python应用程序的协议,那么您可能仅限于其预先存在的通信形式(套接字或ZeroMQ等)。如果您能够修改Python应用程序,那么实现一个简单的面向行的套接字服务器可能是最容易的,该服务器读取请求字符串,直到找到“\n”,处理消息,并用以“\n”结尾的字符串响应。如果您只需要简单的同步发送/接收,ZeroMQ可能会有些过头。我不知道,因为这是别人的论文,但我认为可能不是。我能做的,也最有可能要做的是一个py程序,它可以和以前写的论文进行交互。那么你有什么建议,简单的套接字(因为ZeroMQ不工作)?我发布了一个可能的答案,请告诉我这是否朝着正确的方向发展。如果没有,我可以根据需要修改和添加更多细节。我喜欢它!非常感谢你的回答,我今天将尝试实施它。我会让你们知道,若我对此有任何疑问,我会尝试遵循教程。你认为我会进入正确的阶段吗?我一直在尝试这个套接字并思考它,我意识到我需要在C++中嵌入Python,因为我所做的是一个插件,它基本上被加载到程序中,插件做了所有必要的东西。因此,python程序不需要打开并在python shell上运行是有道理的,对吗?你怎么看?你提供的文章链接中的“用于嵌入的TCP/IP套接字”部分与我推荐的方法非常相似。从技术上讲,与Python TCP套接字服务器通信的C++套接字客户端实际上不是嵌入的,它更像点对点客户机/服务器实现。除了术语,我认为您希望启动带有TCP套接字服务器的Python进程,并与C++ TCP Socket客户端连接。如果你不想让它打开并提前运行,你可以从C++启动Python服务器进程。希望我已经理解了你的要求。我决定我应该在C++中嵌入Python。我已经测试过了,这正是我想要的。非常感谢你的帮助,并为我指明了正确的方向