c ++ - Enkelt stikforbindelse med flere logiske datastrømme (differentierende pakker)

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg laver et program i C ++ ved hjælp af Windows-stikkontakter, hvor jeg vil have en enkelt stikkontakt, men evnen til at sende data fra forskellige tråde og skelne serversiden, hvilken tråd sendte dataene, da de har forskellige applikationer. Væsentligste logiske datastrømme ved hjælp af en enkelt stikforbindelse. Jeg har problemer med at finde en måde at differentiere pakke server side. Det bedste jeg kan tænke på, starter hver pakke med et par byte, der angiver, hvilken tråd der har sendt den. Er der nogen bedre måder at gøre dette på?


Ligner på, hvordan man bruger en enkelt port til flere logiske datastrømme (Winsock)? men jeg er fast ved at differentiere pakkerne.

Bedste reference


Din bedste indsats (jeg tror) er at forbinde et entydigt id med hver opgave, lav en enkelt tråd, der håndterer netværket og (som sagt) tilføjer opgave-id til pakken.


På modersiden gør du det samme: En enkelt tråd læser pakkerne og distribuerer deres indhold i henhold til opgave-id.

Andre referencer 1


Hvis de såkaldte pakker ikke er alle en fast længde, som serveren ved, skal du også have en indikation, hvor en pakke starter eller slutter.