TCP Programming Problem

D

Davis

Guest
Käytän TCP pistokeliitäntä, joka lähettää tietoja Ethernet.Saan packets liitetään vuonna saanut satamaan.Minun täytyy erota ne soveltamista ohjelma.Oletetaan TCP ei saisi näin.Kaikki asetukset kaipasin?Ole hyvä ja auta minua.Kiitos.

 
TCP tarjoaa sinulle "stream tavuja" yhteydessä, aivan kuten te olet löytänyt.Hakemuksesi on koodatessaan tietosi osaksi yhteydessä, ja (tietenkin) purkaa sitä, kun se tulee ulos.

Yksinkertaisin tapa tehdä tämä on todennäköisesti "koodaan" on ascii (esim. käyttämällä sprintf) ja käyttää \ n erottaa viestejä.Jokaisen viestin aloittaa ainutlaatuisen merkkijonoa ilmoittamaan, mitä tietoja, joita seuraa, siinä on kyse.Jos haluat purkaa se te saisivat linjan pistorasiaan (irtisanoa \ n), ja käytä sitten sscanf saada string tunnistaa viestin, ja riippuen viestin purkaa muun tietoja linjan.

Jos lähetät binary tiedot (esim. koska koodaus ASCII olisi liian hidas / ylikuormittavat viestinnän linkki) periaatteet ovat edelleen samat, mutta sinun on koodi rutiininomaista selvittää, jossa jokainen viesti päättyy.

Kun lähetät tiedot TCP yhteydessä, se voi olla hajanainen (niin se saapuu kohdetta useita erillisiä chunks) tai yhdistettynä muihin tietoihin (niin se saapuu isompi murikka kuin lähetettiin), vaikka virta tavua eivät ole viallisia.Hakemuksesi on kerätä kaikki tiedot chunks jotka muodostavat viestin eikä tarpeettomasti hävitä mitään ylimääräisiä tietoja, jotka saapuvat sen jälkeen, kun se (koska tämä on probabl alkamista seuraavan viestin).

Kaikki tämä on melko paljon, miten stream viestintä linkki toimii, ei ongelma ainutlaatuinen TCP.

Jos olet valmis koodin havaitsemiseksi menettänyt viestejä, tai olette valmiita luottamaan teidän viestintäväline (eli ethernet) eivät menetä mitään tietoja, niin saatat sijaan päätät käyttää UDP, joka tuottaa tietoa aiheesta "sanoman perusteella: jos esittää 273 tavua yhdessä pistorasiaan kirjoittaa, saavana saavat 273 tavua yhdessä vastaanotettu viesti, joten niitä ei ole, että virta-dekoodausta kysymyksiä.MUTTA UDP ei ole "luotettava toimitus" ominaisuudet sisäänrakennettuna se, että TCP on, ja hakemus on toimitettava, jos ne ovat tarpeen.

HTH
Barny

 

Welcome to EDABoard.com

Sponsor

Back
Top