Problem mit C++, C#, uvm!



  • Hi
    Also, folgendes Problem:
    Ich entwickle ein kleines Netzwerkspiel. Die Game Engine hat zu lahme Netzwerk-
    funktionen. Deshalb hab ich in C# eine Netzwerkengine geschrieben. Server.exe
    und Client.dll um das ganze in die Game Engine zu implementieren.

    Mit schrecken musste ich feststellen, dass ich keine dll's implementieren kann,
    welche mit .NET geschrieben wurden.
    Deshalb muss ich jetzt wohl die Client.dll in C++ schreiben.
    Hab schon eine kleine, sehr einfache dll gemacht. Und es funktioniert.
    Jetzt muss ich also "nur" noch den "Rest" hinzuproggen.

    Aber leider musste ich feststellen, dass ich als C# progger keine Chance habe.
    C++ ist so ganz anders, dass ich wirklich nix mehr durchblicke.

    Gibt ja viele Tuts zu Winsock etc, aber bei dem Code wird mir übel.

    Vielleicht gibts ja noch ne andere Lösung, als Client.dll neu zu schreiben?
    Oder gibts irgendwelche Klassen oder so, mit denen man sich dann auf den Code
    konzentrieren kann?

    Ich stell mir das so vor: :p

    client s;
    s.Connect("127.0.0.1", "3453");
    s.Send(ByteArray);
    

    Darf auch etwas kosten.

    Oder gibts irgendwo ein nettes kleines Tutorial, das wirklich
    sehr einfach ist? Ohne so C++ schnick-schnack-müll.
    Nur mit ursprünglichen Funktionen.

    Hoffe jemand kann mir helfen!

    mfg
    vampir26



  • rund um die funktion socket() findest du die grundlegenden netzwerksachen.
    http://www.pc-adviser.de/socket_programmierung.html

    dadrum klassen in deinem sinne zu schreiben, sollte nur wenige tage dauern. die fremden klassen leiden normalerweise unter featuritis und sind fuchtbar aufgebläht. 😞

    es kann unter umständen günstig sein, zu schauen, ob boost::asio http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/tutorial/tutdaytime1.html dir gut liegen würde.

    aber vor allem verstehe ich nicht, weshalb du überhaupt nach c++ gehen muß, wenn sie in c# schon klappen. mit c++/cli solltest du doch eigene c#-dinge benutzen können?



  • Hi
    Danke, sind schon mal echt hilfreiche Links.
    Am Anfang zum Testen hab ich die Netzwerkengine als .exe entwickelt, also
    Server.exe, Client.exe. Aber die Client.exe kann ich ja nicht in die
    Game Engine inkludieren.
    Als ich dann Client.exe nach Client.dll umschrieb hab ich gemerkt das dies eben
    nicht funktioniert, weil client.dll mit .net entwickelt wurde.
    client.dll ist irgendwie unmanaged und die Game Engine in einer managed Sprache
    geschrieben (oder umgekehrt?).
    Also die Game Engine ist in c++ geschrieben und da kann ich nicht c# dll
    implementieren.

    So hat man mir das jedenfalls gesagt.



  • Hi nochmal.
    Was ganz wichtiges hab ich noch vergessen!
    Vielleicht gibt es ja schon solch eine dll?
    Ich brauch nur folgende Funktionen:

    - Verbinden
    - ByteArrays senden und empfangen per TCP und UDP
    - verschlüsseln der Pakete

    Am besten open source.

    Darf auch was kosten!

    Vielleicht gibt es eine gute Netzwerkengine die ich verwenden kann.
    RakNet kenne ich schon.


Anmelden zum Antworten