SFML Network: Package kommt nicht an



  • Hi...weiß net ob ich im richtigen Forum bin, hoffe aber doch so 😉
    Also mein Problem ist, dass ich mit den Sockets von SFMl meine Probleme hab...undzwar will ich da ein Packet senden, von Client, zu Server...aber irgendwie funktioniert das nicht so ganz...hier mal mein code:

    //Server
    #include <SFML/Network.hpp>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        while(1)//Holding the server open for new connection
        {
            sf::SocketTCP Listener;
            if(!Listener.Listen(2304))
            {
    	    cout << "Unable to listen to the given Port 2304!" << endl;
            }
    
            sf::SocketTCP Client;
            sf::IPAddress ClientAddress;
            if(Listener.Accept(Client, &ClientAddress) != sf::Socket::Done)
            {
    	    cout << "Some error occured.Clients are unable to connect to the Server" << endl;
            }
    
            sf::Packet Packet;
            std::string Order;
            while(1)
            {
                if(Client.Receive(Packet) == sf::Socket::Disconnected)
    	    {
    	        cout << "The client disconnected" << endl;
    	        break;
                }
    	    Client.Receive(Packet);
    	    Packet >> Order;
    
    	    cout << ClientAddress << ": " << Order << endl;
    	    if(Order == "Server.Close"){break;}
            }
            if(Order == "Server.Close"){Listener.Close();Client.Close();}
            //Else: Restart Server
        }
    
    }
    
    //Client
    #include <SFML/Network.hpp>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        sf::SocketTCP Client;
        if(Client.Connect(2304,"192.168.178.22") != sf::Socket::Done)
        {
    	cout << "Unable to connect to the server!" << endl;
        }
    
        std::string Order;
        sf::Packet Packet;
        while(1)
        {
    	cout << ">> ";
    	cin >> Order;
    
    	Packet << Order;
    	Client.Send(Packet);
    	if(Order == "Client.Close"){break;}
        }
        Client.Close();
    }
    

    Das erste Packet das ich schicke, zeigts erstmal nix an...wenn ich dann noch eins schicke, zeigts mir das erste Packet an und dann kann ich schicken was ich will und es zeigt nix mehr an...nur alle 15-20 sek. zeigts mir dann das erste Package nochmal an... 😕
    Hab grad kein Plang worans liegt!Hoffe ihr wisst mehr _
    mfg Finn

    EDIT: Sry wegen der Einrückung...hab Umschalttaste benutzt, was es hier anscheinend net anzeigt 😞



  • Zum Problem selbst kann ich dir leider nichts sagen, aber falls du es noch nicht kennst: Es gibt ein offizielles SFML-Forum auf http://www.sfml-dev.org/forum/. Nicht dass du hier nicht posten solltest, aber dort werden sich wohl mehr Leute damit auskennen und dir entsprechend helfen können (gibt sogar ein eigenes Unterforum fürs Netzwerk). 🙂



  • Hat sich gelöst nachdem ich im SFML-Forum nachgefragt hab 😛 Danke für den Tipp Nexus^^


Anmelden zum Antworten