apNia schreef op dinsdag 12 mei 2009 @ 11:43:
Woy >> Gezien alles nu alsnog over TCP/IP gaat, heb je dan niet die betrouwbaarheid alsnog toch? Er is alleen wat overhead door het protocol, maar volgens mij kan ik daar niet echt omheen. En vraag is ook of ik dat wil... Neem aan dat games als Quake Live nu ook gewoon iets dergelijks gebruiken

TCP bied inderdaad garanties over het correct aankomen van data. UDP bied dat echter niet. Ik zou niet weten wat Quake Live precies gebruikt, maar ik denk inderdaad dat het gewoon over TCP/IP gaat.
Ik zeg ook niet dat je perse een eigen formaat moet specificeren, alleen dat een Human-readable protocol wel overhead heeft, die je niet perse nodig heeft. Dan is het dus zaak om te kijken of die overhead geen belemering vormt voor jouw doeleinden.
Ga bijvoorbeeld eens uitrekenen wat de bandbreedte gaat zijn als je het op die manier aanpakt. Als je bijvoorbeeld elke seconde 5 keer een x/y positie door wilt sturen en je doet dat met de volgende XML
XML:
1
2
3
4
| <Position>
<X>5</X>
<Y>6</Y>
</Position> |
Dan kan je gewoon uitrekenen hoeveel data dat is. Daarbij moet je natuurlijk wel rekening houden welke transport laag je gebruikt. Want bij HTTP moet je natuurlijk die overhead ook meerekenen. ( TCP/IP heeft natuurlijk ook ovehead, maar die heb je ook als je HTTP gebruikt aangezien dat weer boven op TCP/IP draait )
Als uit die berekening blijkt dat je in de problemen komt met je bandbreedte zou je kunnen beslissen om een simpel binair protocol op te stellen. Zoals je hierboven bij het XML voorbeeld ziet is de daadwerkelijke data immers maar een klein deel van het totale bericht.
Maar nogmaals, het is grotendeels afhankelijk van de eisen en wensen die je aan je communicatie stelt.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”