Как связаться с сервером по белому IP-адресу?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как связаться с сервером по белому IP-адресу?

Сообщение Anonymous »

Уважаемые разработчики и просто форумчане
Сегодня у меня возникла проблема с доступом к серверу по белому ip адресу... Мой сервер не получает(или не видит) ни одного запроса . Купил белый ip адрес, после этого задал настройки, при которых роутер должен добираться до локального адреса по белому ip адресу, который выглядит так:

Код: Выделить всё

inner ip address: 192.168.1.194
inner port: 12345

external ip address: 45.####.####.####
external port: 8888
вернёмся к проблеме. Я создал две программы: «client.exe» и «server.exe», все они были созданы с использованием библиотеки C++ Boost Asio. Сервер и клиент отлично работают с серым IP-адресом, но не с белым IP-адресом...
Клиент говорит (используя белый IP-адрес):

Код: Выделить всё

Exception: connect: The connection was not established because the destination computer rejected the connection request [system:10061 at boost_1_86_0/boost/asio/detail/win_iocp_socket_service.hpp:629 in function 'connect']
Вот весь этот код (Client.cpp, Server.cpp):
сервер:

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using boost::asio::ip::tcp;

// U W U //
template class Packet_info{
std::vector info;
int rsize = 0;
public:
//атрибуты
int last_sent_data = 0;
bool sent_primary_data = false;
bool received = false;
T_info size;
T_info receiver;
T_info received_msg;
T_info reserved_msg;
T_info id;

//функции
void add_info(T_info value){
this->info.push_back(value);
this->rsize++;
this->size = std::to_string(rsize);
};
T_info get_info(int index){
return *(info.begin()+index);
};
T_info get_packet(){
T_info res(reserved_msg);
if(received){
res = received_msg;
}
else{
if(!sent_primary_data){
int current_data_to_send = last_sent_data;
last_sent_data++;
if(current_data_to_send == 0){
res = size;
}else if(current_data_to_send == 1){
res = receiver;
}
else{
sent_primary_data = true;
last_sent_data = 0;
};
};
if(sent_primary_data){
int current_data_to_send = last_sent_data;
last_sent_data++;
if((info.begin() + current_data_to_send) != info.end())
//не дошло до конца массива
res = info[current_data_to_send];
else{
//блокировка пакета к отправке
received = true;
};
};
};
return res;
};
bool operator==(Packet_info packet){
int size = 0;
for (auto& i : info)
size += 1;

int i_int = 0;
int equalings = 0;
for(auto i = info.begin(); i != info.end(); i++){
if((*i) == packet.get_info(i_int))
equalings++;
i_int++;
};

if(size == equalings)
return true;
else
return false;
}
};

class Send_service{
std::vector
> packets;
public:
void add_packet(std::string receiver, std::string packet_id, std::vector vec){
Packet_info new_packet;
new_packet.received_msg = "already_received";
new_packet.receiver = receiver;
new_packet.reserved_msg = "nothing was returned";

for(auto i = vec.begin(); i != vec.end(); i++){
new_packet.add_info((*i));
};

packets.push_back(new_packet);
};

std::string process_receiver(std::string receiver, std::string packet_id){
std::string part_of_packet = "not found";
for(auto i = packets.begin(); i != packets.end(); i++){
if((*i).receiver == receiver){
part_of_packet = (*i).get_packet();
break;
};
};
for (auto i = packets.begin(); i != packets.end();) {
if (i->received == true) {
i = packets.erase(i); // Присваиваем i возвращенный итератор
} else {
++i; // Увеличиваем только если не удалили
}
}

return part_of_packet;
};
};

Send_service Send_service;

class session : public std::enable_shared_from_this  {
public:
session(tcp::socket socket) : socket_(std::move(socket)) {}

void start() {
do_read();
}

private:
void do_read() {
auto self(shared_from_this());
socket_.async_read_some(boost::asio::buffer(data_, max_length),
[this, self](boost::system::error_code ec, std::size_t length)
{
if (!ec) {
do_process(length);
} else {
std::cerr 

Подробнее здесь: [url]https://stackoverflow.com/questions/79346447/how-to-reach-the-server-within-white-ip-address[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как связаться с сервером по белому IP-адресу?
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Как связаться с сервером по белому IP-адресу?
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как связаться с сервером по белому IP-адресу?
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как связаться с сервером по белому IP-адресу?
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Невозможно связаться с сервером LDAP через ldap_bind($con, $rdn, $pwd)
    Anonymous » » в форуме Php
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»