webForumDet fria alternativet

Behöver enkelt protokoll för att skicka text

C/C++

3 svar · 540 visningar · startad av mangan

Medlem sedan feb. 2003216 inlägg
Frågan#1

Hej!

Sitter här och jobbar med en liten server som skall ta emot olika kommandon och utföra olika uppgifter. Servern är skriven i C++ och fungerar som den skall och jag har ett protokol för att skicka meddelanden. Dock är jag inte riktigt nöjd med detta, det är ju egentligen inte annat än textsträngar som skickas i klartext :e .

Uppbyggnad av meddelande:

start;längd;radslut;
kommando1;data1;radslut;
...
kommandoN;dataN;radslut;
slut;radslut;

Nu skulle jag vilja komprimera meddelandena för att minska trafiken på nätverket och på så vis snabba upp det hela lite grann. nätverket är imellanåt väldigt belastat så ju mindre man skickar och tar emot ju bättre.

Jag kan inget om komprimering så alla tips som kan ges är bra.

Medlem sedan jan. 2005327 inlägg
#2

Jag förstår nog inte rikktigt problematiken.
Det är ju väldigt lite data som skickas med den typen av protokoll.
Det är ju en byte per tecken plus overhead som OS lägger på.

De flesat saker som jag har varit med om på sistone har man istället valt att öka overhead och göra ineffektivare protokoll på applikationsnivå. XML baserad information. Där skickas en massa tecken som inte tillför något. Det man vinner är ju att det blirr lättare t.ex läsa loggar. Det blir även lättare att hanter versionskonflikter när någon startat en gammal klient. Det gör inget man plockar den info man är intresserad av osv.

Men som sagt klarar inte nätet av ett så pass slimmat enkelt textprotokoll så känns det inte som det är det som är problemet. Det är klart du kan klippa bort en och annan byte och använda andra kontrolltecken, men det skall inte behövas.

/pebi

Medlem sedan juni 200010 432 inlägg
#3

Tja, du kan ju enkelt komprimera på egen hand (vad det nu skulle vara bra för) genom att byta ut data som har hög frekvens mot symboler. Fast vad det skulle göra för reell skillnad är antagligen endast markant. Eventuella flaskhalsar ligger nog snarare i nätverksprotokellet du använder och/eller i din applikation.

Medlem sedan feb. 2003216 inlägg
#4

Bra synpunkter. Tror att det snarare är som du säger PeW, problemet ligger i ett bibliotek som jag använder eller i min applikation. Skall ta och gå igenom den ordentligt och se vad som kan göra bättre. Säkert en massa som vanligt.

278 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)