¿Por qué este socket udp no funciona cuando lo ejecuto en una PC fuera de la red?

programación


Estoy intentando establecer una conexión entre dos computadoras y ambas usan un adaptador tp-link, pero no recibo nada del cliente.

<pre lang="C++">
<pre>#include <iostream>
#include<SFML/Network.hpp>
using namespace std;
int main()
{
    string lolz;
    cout << "C[CLIENT]/S[SERVER] : ";
    cin >> lolz;
    
    if (lolz.compare("S") == 0)
    {
        sf::UdpSocket socket;
        socket.bind(55002);
        char buffer[1024];
        std::size_t received = 0;
        sf::IpAddress sender;
        unsigned short port;
        socket.receive(buffer, sizeof(buffer), received, sender, port);
        std::cout << sender << " CLIENT SEND YOU : : " << buffer << std::endl;
        std::string message = "From server : Response is [ok]" + sender.toString();
        socket.send(message.c_str(), message.size() + 1, sender, port);


    }
    else if (lolz.compare("C") == 0){
        string ipSer;
        cout << "SERVER IP : ";
        cin >> ipSer;
        sf::UdpSocket socket;
        socket.bind(55001);
        // Send a message to IP on port 55002
        std::string message = "FROM CLIENT : [ok]  " + sf::IpAddress::getLocalAddress().toString();
        socket.send(message.c_str(), message.size() + 1, ipSer, 55002);
        char buffer[1024];
        std::size_t received = 0;
        sf::IpAddress sender;
        unsigned short port;
        socket.receive(buffer, sizeof(buffer), received, sender, port);
        std::cout << sender << " SERVER SEND YOU : : " << buffer << std::endl;
    }
}

Lo que he probado:

Intenté desactivar el firewall y el antivirus.
cambiando los puertos
….

Solución 1

Intentaría ejecutar esto desde una línea de comando, con algunos ajustes para que sea un comando simple. Haga que eso funcione y luego agréguelo poco a poco. Quizás entonces intente moverlo a PowerShell. Haga que eso funcione y luego agregue más hasta obtener un resultado estable. Luego convierta PowerShell a C++. Sé que no te di ningún código, pero no encontré ningún problema con tu código tal como está, así que tal vez haya un problema en otra parte. Así es como podría buscar el problema externo: comenzar de manera simple, muy simple, luego agregar poco a poco.

コメント

タイトルとURLをコピーしました