Socketverbindung via Wifi



  • Hallo zusammen.

    Ich möchte mein Smartphone gern mit meinen PC übers Wifi verbinden. Ich habe das Tool "SocketTest" und die Android App "TCP Client" ausprobiert.
    Das hat ohne Probleme funktioniert. Sobald ich allerdings anstatt "SocketTest" als Server zu benutzen meine eigene Anwendung nehme, kann ich über die App nicht verbinden. (Habe auch drei andere Apps probiert. Bei allen verhält es sich gleich. Mit "SocketTest" gehts, mit meiner Anwendung nicht)

    Wenn ich von meinem PC auf den Socket direkt zugreife funktionierts (Also Verbindung von meinem PC zu meinem PC). Der Socket ist also offen.
    Kopiere ich die Anwendung auf meinen Root Server, kann ich auch dort drauf verbinden.
    In der Firewall ist der Port freigegeben (habe den gleichen Port auch bei SocketTest verwendet).

    Wo liegt mein Fehler?

    Hier mein Testcode:

    int main() {
        boost::asio::io_context io_context;
        boost::asio::ip::tcp::acceptor acceptor(io_context, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 25100));
        boost::asio::ip::tcp::socket sock(io_context);
        acceptor.accept(sock);
    
        std::cout << "New Connection!" << std::endl;
    }
    

    oder

    int main() {
    
        boost::asio::io_context io_context;
        boost::asio::ip::tcp::acceptor acceptor(io_context, boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string("192.168.178.35"), 25100));
        boost::asio::ip::tcp::socket sock(io_context);
        acceptor.accept(sock);
    
        std::cout << "New Connection!" << std::endl;
    }
    


  • @zhavok sagte in Socketverbindung via Wifi:

    kann ich über die App nicht verbinden

    Genauer! Fehler?



  • Entweder es kommt in den Apps "Fail to connect" oder eben, dass der Server nicht gefunden wurde. Leider nichts genaues. Einfach nur, dass er nicht verbinden kann. Es ist die gleiche Reaktion, wie wenn ich den Server überhaupt nicht starten würde. In meiner Anwendung passiert auch nichts. Hab auch geschaut ob irgendwelche Exceptions geworfen werden, aber leider nichts. Daher kann ich leider nicht viel mehr dazu sagen.

    Ich habe jetzt nochmal meine Anwendung auf den Root geschoben und versucht mit der AndroidApp dort drauf zu verbinden (Hatte es vorher nur mit einer selbstgeschriebenen Clientanwendung versucht). Das funktioniert ohne Probleme. Also meine Anwendung und die App funktionieren schonmal zusammen. Nur von Smartphone zum PC (Ich verbinde auf die lokale Adresse vom PC, also in meinem Fall "192.168.178.35") funktionierts nicht.



  • IPv6 vs IPv4 Problem? Wie verbinden sich die Android Clients?

    Schau die mit WireShark an, was da übers Netzt geht. Die Fritzbox liefert unter http://fritz.box/html/capture.html ausgesuchten Datenverkehr im WireShark Format aus.



  • IPv4/v6 Problem vermute ich nicht. Verwende v4 und so stehts auch überall drin. Ich hab jetzt mal direkt den Port scannen lassen mit Wireshark. Die Pakete vom Smartphone kommen auf dem PC an:

    https://prnt.sc/l26d0d
    (das war während meine Anwendung lief)

    https://prnt.sc/l26fxs
    (und so siehts aus, wenn ich SocketTest nehme)



  • Hab es jetzt nochmal auf meinem Laptop getestet. Dort funktioniert es ohne Probleme. Der Fehler ist wohl anderer Natur. Vielen Dank trotzdem 👍🏼


Log in to reply