为什么当我在网络外的电脑上运行这个udp套接字时它不起作用?


我正在尝试在两台计算机之间建立连接,两台计算机都使用 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をコピーしました