Я использую libcurl с C++ для отправки HTTP-запроса другому хосту (компьютеру моего друга) через Интернет. Теперь другой конец использует сценарий Node.js для получения и обработки запроса. Я пробовал код (как C++, так и Node) в своей локальной сети между моими компьютерами, и все работает отлично. Это код, в случае, если вы хотите посмотреть на него:C++ - Отправленный запрос не доходит до другого компьютера
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");
Как я уже говорил, в моей локальной сети, она работает очень хорошо, но почему это разве мой друг не получает запрос? Я заметил, что мой код (часть C++) занимает некоторое время перед закрытием, как если бы он пытался подключиться. Это какая-то проблема с брандмауэром? Мы попытались отключить его, но ничего не изменилось. Мы почти полные нообы с сетью, и мы пытаемся войти в нее.
Если кто-нибудь может нам помочь, спасибо заранее!
'192.168.X.X' не является маршрутизируемым. Это только адрес локальной сети. –
Да, я изменил это в примере, но мы используем IP-соединение, конечно. Я изменил это сейчас – jndok
Я не вижу обработки ошибок. Как вы могли знать, что пошло не так ... –