2 Fragen zur Netzwerkprogrammierung



  • huhu,
    ich hätte mal 2 Fragen:
    Kann man mit Sockets nur Strings versenden bzw. muss man diese Strings dann z.b. wieder zurück nach Int casten oder gibt es da noch andere Funktionen wie send?
    Und 2. was bringen Netzwerkengines wie z.b. RakNet? Ich meine noch einfacher wie sned und recv geht es ja wohl kaum
    danke



  • talktalk schrieb:

    Kann man mit Sockets nur Strings versenden bzw. muss man diese Strings dann z.b. wieder zurück nach Int casten oder gibt es da noch andere Funktionen wie send?

    Mit Sockets kannst du versenden was du willst, von Hühnern über Toaster bis hin zu einer Villa.

    talktalk schrieb:

    Und 2. was bringen Netzwerkengines wie z.b. RakNet? Ich meine noch einfacher wie sned und recv geht es ja wohl kaum

    Kenne RakNet nicht, aber es geht eine ganze Ecke einfacher als send und recv. Z.B. müsstest du nicht mehr händisch Fehler abfangen, sondern arbeitest mit Exception-Handling; generell gibt's ein wesentlich saubereres Interface und z.B. Klassen. Zudem sind solche Bibliotheken oft halbwegs Plattform-unabhängig (laufen meist unter Windows+Linux+MacOS).

    Mein Tipp: Für C++ schau dir boost::asio oder SFML an, für C wird's auch genug geben. Wenn du die Netzwerk-Kommunikation auf einem so niedrigen Level schreibst, handelst du dir nur schwer wartbaren und vor Fehlern strotzenden Code ein.



  • danke, aber send erwartet immer einen char als parameter



  • talktalk schrieb:

    danke, aber send erwartet immer einen char als parameter

    Ein char ist in C/C++ nichts anderes als ein Byte. In ein char-Array kannst du also alle möglichen und beliebigen Werte reinpacken, Zeichen sind intern ja auch nur bestimmte Zahlen.



  • talktalk schrieb:

    danke, aber send erwartet immer einen char als parameter

    send erwartet einen Zeiger auf einen Buffer, in dem sich die zu versendenden Daten befinden.



  • kann ich dann send auch einen int oder c++ string oder float oder so übergeben oder wie mache ich sowas dann?
    und dann noch 2 fragen zu RakNet:
    Ich habe auf der Homepage gesehen, dass RakNet nur UDP untersützt.
    Das würde doch für ein professionelles online Game nicht ausreichen oder?
    Denn bei passwörtern oder so muss man doch sicher sein dass diese ankommen(TCP).
    Und dann noch was zur RakNet license. Was kostet denn RakNet nun wenn man ein kommerzielles Projekt damit erstellt und verkaufen will? Ich habe gesehen das RakNet die "Indy" license hat, aber keine festen Preise oder so gesehen.
    Was kostet es Raknet in einem kommerziellen projekt zu verwenden, ohne das man den source code vom projekt offenlegen muss?
    Bitte keine verweise auf die RakNet seite, von da komme ich grade.
    Ich freue mich schon auf die Leute, die wirklich versuchen mir zu helfen.
    Danke



  • Denn bei passwörtern oder so muss man doch sicher sein dass diese ankommen(TCP).

    http://www.jenkinssoftware.com/raknet/manual/reliabilitytypes.html



  • Auf der Seite steht doch das es 100 Dollar kostet....



  • wo steht das? und darf ich dann mit den 100 euro nur ein Raknet project machen?
    zitat:
    An Indy license allows you to use RakNet in a single commercial application which you can distribute and sell to your end users.



  • Wenn du unter Indy-License auf "Read More" anklickst.



  • ok danke aber das darf ich dann nur für eine anwendung benutzen oder?
    Wenn ich noch eine verkaufen will muss ich nochmal 100 zahlen?



  • talktalk schrieb:

    Ich habe auf der Homepage gesehen, dass RakNet nur UDP untersützt.
    Das würde doch für ein professionelles online Game nicht ausreichen oder?
    Denn bei passwörtern oder so muss man doch sicher sein dass diese ankommen(TCP).

    ??



  • talktalk schrieb:

    kann ich dann send auch einen int oder c++ string oder float oder so übergeben oder wie mache ich sowas dann?

    Du legst Dir einen Buffer an, schreibst die zu verwendenden Daten hinein, und übergibst send einen Zeiger auf diesen Buffer. Es empfiehlt sich übrigens, numerische Werte vorher in einen String zu konvertieren.



  • talktalk schrieb:

    talktalk schrieb:

    Ich habe auf der Homepage gesehen, dass RakNet nur UDP untersützt.
    Das würde doch für ein professionelles online Game nicht ausreichen oder?
    Denn bei passwörtern oder so muss man doch sicher sein dass diese ankommen(TCP).

    ??

    Hab ich dir doch schon einen Link zu gegeben. RakNet hat einen Reliablilty Layer.


Anmelden zum Antworten