Pourquoi ce socket udp ne fonctionne pas lorsque je l’exécute sur un PC en dehors du réseau ?

la programmation


J’essaie d’établir une connexion entre deux ordinateurs, tous deux utilisant un adaptateur tp-link, mais je ne reçois rien du client.

<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;
    }
}

Ce que j’ai essayé :

j’ai essayé de désactiver le pare-feu, l’antivirus
changer les ports
….

Solution 1

J’essaierais de l’exécuter à partir d’une ligne de commande, avec quelques ajustements pour en faire une commande simple. Faites fonctionner cela, puis ajoutez-y petit à petit. Essayez peut-être alors de déplacer cela vers PowerShell. Faites fonctionner cela, puis ajoutez-en davantage jusqu’à ce que vous obteniez un résultat stable. Convertissez ensuite le PowerShell en C++. Je sais que je ne vous ai donné aucun code, mais je n’ai trouvé aucun problème avec votre code tel quel, alors peut-être qu’il y a un problème ailleurs. C’est ainsi que je pourrais rechercher le problème extérieur : commencer simple, très simple, puis ajouter petit à petit.

コメント

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