Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

31

25.01.2009, 01:33

Zitat von »"Nox"«

Wer wissen möchte, wie TCP im Groben funktioniert: Wiki. Wer wissen will, wie es genau funktioniert: RFC 793, RFC 1323. Wer einen einfachen Chat in C++ programmieren: z.b. http://robsite.net/tags/c .

:)


Weiß jetzt nicht, ob das auf mich bezogen war, aber da mein Posting direkt vorher kam und zuvor länger Nichts über TCP gesagt wurde, möchte ich mal klarstellen: Ich meinte eben mehr in Richtung Protokolle für Spiele, denn dafür braucht man ja nicht zwingend Code-Beispiele. Aber dürfte ja inzwischen eh egal sein.
<< an dieser Stelle ist eine Signatur verstorben >>

Anonymous

unregistriert

32

25.01.2009, 01:41

Zitat von »"Gotbread"«

Zitat von »"the[V«

oid"]
...TCP im Speziellen...


Ich werde ein spezielles Protokoll behandeln, was genau für solche
Spiele gedacht ist.
hä?

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

33

25.01.2009, 01:43

Oh, muss ich überlesen haben :D
<< an dieser Stelle ist eine Signatur verstorben >>

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

34

25.01.2009, 05:53

Hmm pardon falls ich dich falsch verstehe, aber wenn ich ne Verbindung habe, stopfe ich links einen Paket a la "größe+message+daten" rein und nehme es rechts wieder raus :? Daher würde es mich interessieren, warum es spezielle Protokolle geben muss? Meist ist es doch ein Messageidenifizierer, eine Größenangabe und halt die Daten ansich. Könntest dir mal anschauen, wie das RakNet löst: http://www.jenkinssoftware.com/raknet/manual/helloworldvideo.html (das erste dritte kannst locker überspringen :)). Viel anders macht es die anderen Libs und dem entsprechend die Spiele wohl auch nicht.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

35

25.01.2009, 12:24

Zitat von »"Nox"«


aber wenn ich ne Verbindung habe, stopfe ich links einen Paket a la "größe+message+daten" rein und nehme es rechts wieder raus


Ich mein damit, das es kein Protokoll wie html wird nach dem festen
Schema [senden-empfangen][senden-empfangen]...
sondern ab und zu mal daten sendet ohne auf eine Antwort zu warten.

wenn der Client vorher schon weiß, wiegroß die Daten sind und welcher
Art, kann man einfach die Daten schicken ;)
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

36

25.01.2009, 15:27

Das mit dem vorher wissen ist so eine Sache. Klar kann man darauf offen, dass TCP hält was es verspricht (was bei einem einfachen Checksum-Verfahren so eine Sache ist :D). Ich zippe ja alles einfach per zlib und was defekt ist, wird gedroppt. Dann ist der Zustand des Clients natürlich nicht mehr sooo eindeutig ;). Und warum sollte sich der Server großartig merken im welchen Zustand der Client genau ist?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

37

25.01.2009, 15:35

bisher hat das checksumverfahren ganz gut geklappt bei mir :D

aber bei Pong gibbet nicht viele spielzustände. das ein client sich verbunden
hat, bekommt man praktischerweise durch accept mit. da die beiden
eh nur positionsdaten austauschen, muss man sich nur merken, ob man
server oder client ist (weil der server immer recht hat :p )
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

38

26.01.2009, 22:25

also wegen packeten kann ich echt das prinzip von wow anraten: die definieren einfach status codes (z.b. SMSG_UPDATE_OBJECT) und anhand des codes (das ist natürlich nur n enum und dahinter liegt ne id in hex) und daran erkennt der client um was es sich handelt und kennt den genauen aufbau+die länge des packetes. bin mir net 100% sicher aber soviel ich weiss kommt glaub am schluss dann sogar nochmals ne checksum hin um auch noch den inhalt zu prüfen. ;)

SilentDragon

Alter Hase

Beiträge: 530

Wohnort: Köln

Beruf: Student

  • Private Nachricht senden

39

04.02.2009, 16:33

netzwerk programmierung in C++ würde mich interessieren :D

Grundlagen Client-Server, Daten austausch etc. ...
...

Werbeanzeige