DirectPlay Messages - Wie sehen sie aus?
-
Hi folks!
Weiß jemand, wie die DirectPlay Messages ECHT aussehen, wenn sie über TCP/IP als Packets rausgehen?!?
Bzw. wie man das feststellen könnte?!?Sinn ist es, auf Telnet-Ebene einen Server für DirectPlay-Games zu coden (der z.B. auch unter Linux läuft)...
Danke für Infos.
That's all, folks!
-
wäre es nicht vielleicht einfacher wenn du ein schönes stabiles eigenes protokoll schreibst?
ich weiß von leuten die andere microsoft protokolle per reversenginiering gahackt haben und die meinten, dass es etwas schlimmeres nicht geben könne, weil über alle generationen hinweg jeder bug weiter unterstützt wird und workarounds um workarounds gebastelt werden, sodass am ende niemand mehr wirklich weiß was genau abgeht und nur hofft dass die ursprünglichen libs die man gemacht hat keine fehler haben, weil man sonst ewig an fehlern sitzt die so kleinlich sind wie = ! und != vertauscht zu haben.
außerdem kenn ich auch keine konkurenz bisher, jede spielefirma codet an sich gesehen etwas eigenes (falls die es wirklich gut haben möchten).
bei tcp/ip z.B. muss man ja nicht nur ne verbindung aufbauen und das richtige protokoll verwenden, man muss dazu noch die leitungen (transferwege) der packete optimieren und auch die packetgröße richtig anpassen (bin mir sicher, dass leute die das bei UT2003 gecodet haben dir seitenweise beispiele für wichtige dinge geben könnten).
vielleicht ist das bei DirectPlay auch so.rapso->greets();
ps. ich will dir nicht sagen, dass du das nicht schafst. will aber meinen, dass du mit deiner zeit viel besseres anfangen kannst, anstatt dich durch sowas zu wühlen (falls es nicht schon irgendwo ne doc dazu gibt), indem du so ein netzwerk framework selbst codest, schliesslich hast du damit dann nicht viel konkurenz
pps. open network language (http://www.opennl.org/) scheint es noch nicht zu geben
-
groß und prall
-
-
Lass dir nicht so ein Müll von irgendwelchen Leute erzählen. DirectPlay ist ganz sauber programmiert und hatte nie irgendwelche Bugs.
-
oh das war kein müll, und wie du sicherlich überlesen hast, schrieb ich "ich weiß von leuten die andere microsoft protokolle " damit sind andere netzwerk protokolle gemeint, die leute auf linux zum laufen brachten, soweit ich die fähigkeiten der leute beurteilen kann und was sie geschaft haben, glaube ich nicht dass sie da scheiss schrieben.
und wie das protokoll von directplay genau ausschaut, dass weiß ich nicht, hab ich auch nicht behauptet, bloss wenn es genauso ist wie die von denen ich das weiß (und was microsoft sonst so von sich gibt) würde mich das nunmal garnicht überraschen, wenn es bis zur ersten ausgabe von directplay alle bugs noch mit workarounds gäbe.
das ist kein flame gegen microsoft an sich,
rapso->greets();
-
Also ich würde es erstmal mit einen packer sniffer probieren. Ob man natürlich kapiert was die Pakete bedeuten, weiss ich nicht. Du solltest dann einfach mal ganz offensichtliche Bitmuster verschicken, um zu versuchen die wieder zu erkennen.
Bye, TGGC
-
Du meinst ernsthaft, ein eigenes Protokoll zu entwickeln, wäre einfacher als DirectPlay intern zu verstehen...!???
Oh Mann, dann müsste ich mir voll krass die WinSockets und Co. reindrücken, das wollte ich eigentlich vermeiden...
Aber im Ernst: DirectPlay wär' schon geil. Weil man z.B. ganz einfach die Voice-Unterstützung an DirectAudio und DirectPlay koppeln kann, und schwupps hat man TeamSpeak-like Sprachübertragung über den gleichen Weg wie der normale Netzwerk-Flow...
Naja, ich habe ja per JNI schon ein Message-System geschrieben, daß zwischen C++ nativem Windows-Kot und Java-Kot in der VM Messages zur Kommunikation austauscht. D.h. sich anmeldet - bla - und dann 'nen MessageLoop entert...
Trotzdem - über eine echte Netzwerkverbindung ist das schon was anderes...pps. open network language (http://www.opennl.org/) scheint es noch nicht zu geben
Tja, würd' ich mir sonst d'rekt mal angucken... :-))
@TGGC:
Tja, das mit dem PacketSniffer hab' ich mir auch überlegt...
Aber ob das allzuviel taugt...Wenn man wenigstens wüßte wie DPlay sich anmeldet - d.h. wie es einen anderen DPlay Client bzw. Server erkennt und das Handshaking macht. Dann könnte man alle weiteren ankommenden Messages ja erstmal als String zur Kommandozeile raushauen und schauen...
Naja... thx.
-
ich meine nicht, dass es schwer wäre das protokoll zu verstehen, vielleicht ist das ja sauber, aber es könnte schwer sein das heraus zu finden.
wenn ich tcp/ip protokolle rausfinden wollte, dann hab ich da so ein proggy das quasi als server für den "richtigen" client dient und sich dann weiter an den "richtigen" server connected.
während des ganzen logt der die ganzen daten auf platte und nachdem man genau weiß was man versendet hat, kann man manchmal die gleichen daten aus dem logfile finden.naja, ähnlich zur sniffer idee von TGGC...
rapso->greets();
ps. wenn du's nur unter linux zum laufen bringen willst, dann würde vielleicht "wine" reichen, oder?
-
Original erstellt von Sgt. Nukem:
Dann könnte man alle weiteren ankommenden Messages ja erstmal als String zur Kommandozeile raushauen und schauen...Na das ist ja wohl ungefähr das, was der Sniffer macht, nur das du keine gefakte Gegenstelle brauchst.