【解決方法】この udp ソケットをネットワーク外の PC で実行すると機能しないのはなぜですか?


2 台のコンピュータ間で接続を確立しようとしていますが、どちらも tp-link アダプタを使用していますが、クライアントから何も受信しません。

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

私が試したこと:

ファイアウォール、ウイルス対策ソフトをオフにしようとしました
ポートを変更する
….

解決策 1

シンプルなコマンドにするためにいくつかの調整を加えて、コマンド ラインからこれを実行してみます。 それを機能させてから、少しずつ追加してください。 場合によっては、それを PowerShell に移動してみてください。 これを機能させてから、安定した結果が得られるまでさらに追加します。 次に、PowerShell を C++ に変換します。 コードを何も与えていないことは承知していますが、このままではコードに問題は見つかりませんでした。したがって、どこか別の場所に問題がある可能性があります。 外部の問題をどのように探すかについて考えてみます。単純な、非常に単純なことから始めて、それから一度に少しずつ追加していきます。

コメント

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