kun yritän lähettää tekstiä clientiltä serverille vain osa tekstistä tulee perille .
Esim jos lähetän "tekstiä lisää tekstiä" palvelin vastaan ottaa tekstiä vain ensinmäiselle välilyönnille asti.
Mistä tämä mahtaisi johtua?
Kaikka data varmaan tulee perille, mutta komentoriviohjelmassa cinillä saatu välilyöntimerkki on käsittääkseni sama kuin tekstistringin lopetusmerkki (nollatavu, '\0', 0x00, 0) ja tästä johtuu ettei loppu tekstistä tulostu.
Järkevää ratkaisua en heti keksi, mutta tietenkin vastaanotetun datan voisi lukea merkki kerralta kunnes se oikeesti loppuu.
Vai lienenköhän taas ihan väärässä.
Välilyönti kylläkin on ihan väli eikä nolla (' ', 32, 0x20), mutta muistaakseni streamit lukevat joskus hassusti vain tyhjään asti (väli, newline tms.) eli jos koodissa on esimerkiksi cin >> stringi;
ja sille kirjoittaa yks kaks kol
, niin stringi
onkin sitten vain yks
, se saattaisi liittyä tähän.
Itse olen tehnyt tällaisen aliohjelman tähän tarkoitukseen:
string kysy() { string teksti, osa; cin>>teksti; getline(cin, osa); teksti += osa; return teksti; }
Aihe on jo aika vanha, joten et voi enää vastata siihen.