C++ - 发送的请求未到达其他计算机

标签 c++ node.js networking

我在 C++ 中使用 libcurl 通过 Internet 向另一台主机(我 friend 的计算机)发送 HTTP 请求。现在,另一端使用 Node.js 脚本来接收和处理请求。 我已经在计算机之间的本地网络上尝试了代码(C++ 和 Node),一切正常。这是代码,如果您想查看它:

CURL *handle;
string response;

curl_global_init(CURL_GLOBAL_WIN32);
handle = curl_easy_init();

curl_easy_setopt(handle, CURLOPT_URL, "10.10.10.10:7890"); //<= IP:PORT of the remote host
curl_easy_setopt(handle, CURLOPT_POSTFIELDS, "This is my POST request data!!");
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, write_to_string);
curl_easy_setopt(handle, CURLOPT_WRITEDATA, &response);

curl_easy_perform(handle);

curl_easy_cleanup(handle);

和 Node.js 代码:

var http = require("http");
var server = http.createServer(function(request, response) {

    request.on('data', function(chunk) {

        console.log("We got a connection!");

        console.log("Received POST data:");
        console.log(chunk.toString());

    });

});

server.listen(7890);
console.log("Server is listening");

正如我所说,在我的本地网络上它工作得很好,但为什么我的 friend 没有收到请求?我注意到我的代码(C++ 部分)在关闭之前需要一些时间,就好像它在尝试连接一样。这是某种防火墙问题吗?我们已尝试禁用它,但没有任何改变。我们几乎完全是网络新手,我们正在努力进入它。

如果有人可以帮助我们,在此先感谢!

最佳答案

您 friend 的家庭路由器需要知道如何处理从 Internet 在端口 7890 上请求的连接。它需要配置为将该端口上的任何通信转发到您 friend 计算机的特定内部 IP 地址。

并非所有家用路由器都支持端口转发,许多制造商采用不同的方式进行设置。

friend 计算机上的任何软件防火墙也需要知道通过端口 7890 进行的通信是安全的。

关于C++ - 发送的请求未到达其他计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25919710/

相关文章:

c++ - Boost.Spirit X3 中的错误处理和注释

c++ - 基于范围的临时对象

javascript - Mongoose 保存空数组

javascript - React + backend - 共享代码时的项目结构

java - Java SSLSockets 是否需要提供的 SSL 证书?

c# - 通过P/Invoke防止应用程序调用库发生graceless crash

c++ - Makefile 和链接 .a 库

javascript - 发送后出现错误 "can' t 设置 header ”

networking - 端口转发和 Python 套接字

java - 每个 netty worker 每秒唤醒 2 次。为什么?