关于标题问题,我有一个问题.所以,我正在尝试创建一个程序,它在C++程序和运行Apache Web服务器的PHP站点之间传递数据/数据请求.
我一直在研究Socket通信,但我不理解这个概念.我理解如何在PHP中创建套接字,在c ++中创建另一个套接字,并让我们使用测试应用程序运行它们.但只是单独的,不是互相交谈或与我的网络服务器交谈(PHP目前不在服务器上,它在不同的服务器上).那么这是如何工作的呢?根据我的理解,你需要一个人听一个端口号,另一个人要发一些东西给那个命令.
理想情况下,我宁愿不使用任何库来帮助我实现这一目标.我知道这个问题以前曾被问过多次,但我仍然无处可去.
有人可以提供上述工作原理的解释,或链接到这里/其他地方可能有帮助的问题吗?或者,如果有比使用套接字更好的方法吗?他们会互相交谈,速度可能是一个问题.
编辑,进一步说明:
Web服务器:我正在运行Apache Web服务器.PHP脚本位于此服务器上.
C++位置:在测试时,我的c ++应用程序存储在运行Web服务器的Raspberry Pi上.在实际应用程序中,我的C++应用程序仍将存储在同一设备上(但它不会是Raspberry Pi - 尽管仍然基于Linux).
通信:需要通过C++脚本触发PHP脚本来执行操作,反之亦然.他们需要两种方式都需要传递数据(通用数据结构,但它们可能相当大)(因此两者都需要能够发送和接收数据).
使用 Jest 对一些 NodeJS 函数进行一些测试,但它不喜欢import语句,例如import DatabaseController from '../util/database-controller'.
我做了一些阅读,人们建议安装babel-jest和更新我的配置(如下),但我没有任何运气。我错过了什么?据我所知,它不理解import陈述,因为它是一es6件事......
我的笑话部分package.json:
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx}"
],
"resolver": "jest-pnp-resolver",
"setupFiles": [
"react-app-polyfill/jsdom"
],
"testMatch": [
"<rootDir>/**/__tests__/**/*.{js,jsx}",
"<rootDir>/**/?(*.)(spec|test).{js,jsx}"
],
"testEnvironment": "jsdom",
"testURL": "http://localhost",
"transform": {
"^.+\\.jsx?$": "babel-jest",
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$",
"^.+\\.module\\.(css|sass|scss)$"
],
"moduleNameMapper": {
"^react-native$": "react-native-web",
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
},
"moduleFileExtensions": [
"web.js",
"js",
"json",
"web.jsx",
"jsx",
"node"
]
},
Run Code Online (Sandbox Code Playgroud)