Gå til innhold

stream socket eller datagram socket?


Anbefalte innlegg

Videoannonse
Annonse

Stream socket bruker tcp protokollen. Grovt sett vil det si at du er så godt som garantert at det du vil sende kommer fram og at det kommer fram i riktig rekkefølge.

 

Datagram sockets bruker udp protokollen. der er det ikke noen mekanismer som kontrollerer om det som sendes er det som kommer fram. Heller ikke rekkefølgen.

 

Så stream er nok greit å bruke som nevnt.

Lenke til kommentar
Er det en måte å lagre en hel setning i en string? når jeg bruker cin >>  så får jeg kun første ordet.

 

Noen anbefalte måter og lagre hele setningen på?

Det skjer ikke pga. av du lagrer i string, men fordi cin >> leser ett og ett ord avskilt av whitespace.

 

Kan ikke på sparket si hvordan man endrer denne funksjonaliten...

 

Edit:

Prøv getline()

 

Eller:

cin.setf(ios::skipws);

se: http://www.cppreference.com/io_flags.html#format_flags

Endret av JBlack
Lenke til kommentar
getline(cin, s1) funker utmerket. Takker! :)

 

Bare hyggelig :)

 

Eller:

cout.setf(ios::skipws);

se: http://www.cppreference.com/io_flags.html#format_flags

Jeg trodde også denne var mulig, men greier ikke å få den til og fungere...

 

Etter litt søking fant jeg denne som sier at ">>" automatisk hopper over whitespace, så med minde du vil overlaste ">>" er det greiere å bruke getline(cin, string-variabel)...

Endret av Mr.Garibaldi
Lenke til kommentar

Jeg har ikke prøvd den siste selv. Men syntes den var grei å merke seg siden kjeksen ikke spesifiserte at 'hel setning' betydde avbrutt av cr. Dessuten er det greit å kjenne til disse generelt.

 

Edit: Får ikke den til å fungere jeg heller. :shrug:

Endret av JBlack
Lenke til kommentar

ios::skipws, som er satt by default, betyr ganske enkelt at mer enn ett mellomrom (eller annet whitespace) strippes bort når cin tar imot inndata.

 

Med andre ord:

string a, b; 
cin >> a >> b;
// Input: Hei  du (med to mellomrom)

Med skipws: a blir "Hei", b blir "du"

Uten skipws: a blir "Hei", b blir " "

Lenke til kommentar

Fann ut en ok løsning.

 

Noen som har laget et program som kan sende og motta samtidig? Noen tips til og gjøre dette?

 

Edit: Tenkte mer på en server som mottar men sender det han mottar til alle som er connecta. Har så smått begynt på å lære meg å bruke select(), men mye og sette seg inn i.

Endret av Kjeksen
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...