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.htmldadrum 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 PaketeAm besten open source.
Darf auch was kosten!
Vielleicht gibt es eine gute Netzwerkengine die ich verwenden kann.
RakNet kenne ich schon.