Das ist einfach nur extrem überflüssig, da die IP des
Empfängers/Senders ohnehin im Header steht.
Wenn ich mal grob schätze dürfte ein TCP/IPv4 Packet
40byte + Daten haben.
Zum einen hast du absolut Recht :P
Zum anderen, gut geschätzt
IPv4 Header hat 20Byte + optionale Daten die nochmal maximal 40 Byte seien dürfen. Sollten also 60 seien, es seiden ich schmeiß irgendwas in meinem Kopf durcheinander.
das war bei einem client server projekt bei mir so afgebaut
Dann war es wohl schlecht aufgebaut :f
Zumal die Verschlüsselung nichts an der Größe ändern sollte und eine binäre Speicherung von Daten, die keine Zeichenketten sind (z.B. Zahlen), weniger Platz benötigt, als sie erst in Strings umzuwandeln.
Zumal die Verschlüsselung nichts an der Größe ändern sollte und eine binäre Speicherung von Daten, die keine Zeichenketten sind (z.B. Zahlen), weniger Platz benötigt, als sie erst in Strings umzuwandeln.
Padding?
Grundsätzlich reicht für ein Movepacket folgender Aufbau:
Header|PosX|PosY|PlayerID
Was im gesamten nicht mehr als 13 Byte haben sollte.
Zumal die Verschlüsselung nichts an der Größe ändern sollte und eine binäre Speicherung von Daten, die keine Zeichenketten sind (z.B. Zahlen), weniger Platz benötigt, als sie erst in Strings umzuwandeln.
ich bin mir bewusst das es schlecht war aber für das was ich machen wollte hat es völlig ausgereicht .
Von der geröße her habe ich mich wohl ein wenig vertan denn wenn man das in eine datei schreibt und dann im windows explorer schaut sind de etwas größer
ich bin mir bewusst das es schlecht war aber für das was ich machen wollte hat es völlig ausgereicht .
Von der geröße her habe ich mich wohl ein wenig vertan denn wenn man das in eine datei schreibt und dann im windows explorer schaut sind de etwas größer
Nur weil etwas schlechtes funktioniert oder ausreicht heißt das nicht, dass man es verwenden sollte.
Grundsätzlich reicht für ein Movepacket folgender Aufbau:
Header|PosX|PosY|PlayerID
Was im gesamten nicht mehr als 13 Byte haben sollte.
Die Player ID brauch eigentlich nicht mit in das Packet. Ich habe ja programmier technisch für jeden Client einen Socket. Dadurch weiß ich ja welcher Client was sendet.
Die Player ID brauch eigentlich nicht mit in das Packet. Ich habe ja programmier technisch für jeden Client einen Socket. Dadurch weiß ich ja welcher Client was sendet.
MFG Conrew
Aber woher wissen andere Clients um welchen es sich handelt, der sich bewegt?
Kommt immer ein wenig auf deine Ziele an, wieviele Clients peilste den an ?
Dein Ansatz Funktioniert sicher, eine ID vergibt man meist damit du die Perfomancelast nicht auf dem Server hast + du minimierst Probleme der Synchronisation wenn es auf deiner Seite nicht nur ein Server ist der das ganze regelt. Wenn das ganze um 5 Clients geht kannst es wohl genauso so machen wie du es vor hast :P
Bei so einem Projekt musst du die beide Größten Herausforderungen bedenken.
a) Cycles und Speicher sind Kostbar
b) Syncronisation zwischen deinen Servern muss nahezu Echtzeit sein, wenn du nicht in große Probleme rennen willst.
Übergibst du die IDs direkt beim Movepacket musst du nurnoch gegenchecken ob der jeweilige client diese ID bewegen darf, schickst du sie nicht mit musst du sie zuordnen und dafür Sorge tragen das diese Temoräre ID jedem deiner Server bekannt ist, die es dann wieder auf die jeweiligen Sockets matchen müssen, dort die Temporäre ID die sie zu anfang für das jeweilige Objekt angelegt haben und diese Wiederrum neu zuweise oder die alt übernehmen.
In jedem Fall wird es auf ne Menge "rumsuchen" rauslaufen und eine Suche ist etwas womit Computer einfach nicht gut fertig werden -> Perfomance ist mies dabei, deshalb möglichst andere Wege wählen.
So und nun der Gegenweg, für 4 Byte mehr in deinem Movepacket.
Client schickt den Move mit ID
Server prüft ob er das Recht dazu hat die ID zu bewegen.
Jeder Client der im Umkreis der ID ist bekommt das selbe Update, ID abc hat sich nach xy bewegt.
2. Movement
Dabei werden die laufbefehle übertragen und der Server passt die Posi an
100mb reichen locker für die paar Packete. Dein Vorgehen ist auch sehr gut für nen 2d game, mehr Aufwand würde sich nicht lohnen. ist sogar relativ schnell
Problem mit der Logik - Aimbot 05/06/2013 - C/C++ - 4 Replies Hallo,
ich versuche mich gerade an meinem ersten Aimbot.
Mir ist erstmal nur wichtig, dass er in die Richtung des Gegners zielt, die Höhe ist dabei (noch) egal.
Ich schaffe es einfach nicht, dass genau auf den Gegner / in seine Richtung gezielt wird.
Mein Code:
void AimAtEnemy(SPlayer *player, SPlayer *enemy) {
problem (netzwerk) 12/27/2011 - Steam Trading - 1 Replies moin moin wen ich mich bei steam einloggen will krige ich immer netztwerk probleme
Netzwerk problem 07/26/2011 - Technical Support - 1 Replies Tag zusammen
seit einigen tagen hab ich probleme mit meinem internet. Ich komme noch rein von meinem computer aus aber sonst nirgendwo mit meinem laptop und handy klappts nicht und die xbox kommt auch nicht rein.
Ich habe ein Wlan Stick mit QSS den kann ich überall einstecken und er kriegt immer Wlan bei allen anderen wlan sticks kommt Netzwerkidentifizierung fehlshclag und eingeschränkter zugriff / keine Internetverbindung.
auch per lan siehts nicht besser aus ich benutze eine...
Netzwerk Problem 05/28/2011 - Technical Support - 0 Replies Sry, bei mir wurde das Thema iwi 2x aufgemacht, bitte das hier schließen.
[HELP]Netzwerk Problem 10/07/2010 - Metin2 Private Server - 2 Replies hi immer wennn ich den server starte dann nach einer halben stunde komm ich nicht mer ins internet aber hamachi und der p server schon das problem ist dass xampp nicht mehr zum server connecten kann und die spieler au nit