Мне нужно отправить сообщение через интернет
Пробовал так:
#define PORT xxxxx
#include <iostream>
#include <winsock2.h>
#include <ws2tcpip.h>
#pragma comment(lib, "ws2_32.lib")
int Client() {
struct sockaddr_in server_addr;
int sock = 0, value;
const char* helloclient = "Client Hello";
char buffer[1024] = { 0 };
// инициализация библиотеки Winsock
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
std::cerr << "Failed to initialize Winsock" << std::endl;
return 1;
}
// создаём сокет
sock = socket(AF_INET, SOCK_STREAM, 0);
// настраиваем объект сокета
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
// форматируем IP-адрес в бинарный формат
inet_pton(AF_INET, "xxx.xxx.xxx.xxx", &server_addr.sin_addr);
// подсоединяемся к серверу
connect(sock, (struct sockaddr*) & server_addr, sizeof(server_addr));
// отсылаем сообщение серверу
send(sock, helloclient, strlen(helloclient), 0);
// читаем ответ от сервера
value = recv(sock, buffer, 1024, 0);
printf("%s\n", buffer);
// закрываем сокет
closesocket(sock);
// выгружаем библиотеку Winsock
WSACleanup();
return 0;
}
int main() {
Client();
return 0;
}
Но так получается отправить сообщение только для компьютеров в одной сети. А если компьютер находится в сети интернет, то ничего не работает.
Однако у меня есть своя страница в интернете. Может, получится передать сообщение хотя бы на этот хостинг, но как?
Ответы (1 шт):
Автор решения: user580201
→ Ссылка
Для случая с FTP:
#include <iostream>
#include <curl/curl.h>
int main() {
CURL *curl;
CURLcode res;
FILE *file;
// Инициализация библиотеки libcurl
curl_global_init(CURL_GLOBAL_DEFAULT);
// Создание объекта CURL
curl = curl_easy_init();
if(curl) {
// Установка URL-адреса FTP-сервера
curl_easy_setopt(curl, CURLOPT_URL,
"ftp://example.com/path/to/destination/file.txt");
// Установка имени пользователя и пароля для авторизации на FTP-сервере
curl_easy_setopt(curl, CURLOPT_USERNAME, "username");
curl_easy_setopt(curl, CURLOPT_PASSWORD, "password");
// Установка опции для загрузки файла
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
// Открытие локального файла
fopen_s(&file, "local_file.txt", "rb");
if(file) {
// Установка пути к локальному файлу
curl_easy_setopt(curl, CURLOPT_READDATA, file);
// Выполнение запроса
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "Ошибка при отправке файла: %s\n", curl_easy_strerror(res));
}
// Закрытие локального файла
fclose(file);
} else {
fprintf(stderr, "Не удалось открыть локальный файл\n");
}
// Освобождение ресурсов curl_easy_cleanup(curl); }
// Освобождение глобальных ресурсов libcurl
curl_global_cleanup();
return 0;
}