Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

TCP/IP i duzina buffera

[es] :: C programiranje :: TCP/IP i duzina buffera

[ Pregleda: 807 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

erkan
Sarajevo

Član broj: 12339
Poruke: 261
195.222.35.*

ICQ: 238530669


Profil

icon TCP/IP i duzina buffera23.09.2004. u 08:21

Pozdrav svima,
ako preko TCP/IP a primam poruke u odredjenom formatu
a poruke su varjabilne duzine, da li se mogu javiti roblemi ako f-jom:
recv(pCli->m_hSocket, acBuffer, TCP_MESSAGE_LEN, 0)
primam poruke u duzini TCP_MESSAGE_LEN pri cemu taj
parametar oznacava najvecu mogucu duzinu poruke koja mi stize
po tom portu? Dakle, da li mogu ovim nacinom zahvatiti i dio naredne poruke pa time izazvati gresku ili prema ovom protokolu svaka poslana poruka je u zasebnom buffer-u?
Da li se nakon citanja poruke iz buffera (ili samo jednog njenog dijela) ta poruka automatski brise iz njega?

Hvala!
Samo se budala saplice na kamen iza sebe.
23.09.2004. u 08:21 

tweeester
Ivan Arandjelovic
bg yu

Član broj: 724
Poruke: 875
*.kc.vicert.com

Sajt: www.javasvet.net


Profil

icon Re: TCP/IP i duzina buffera23.09.2004. u 08:53
Nazalost situacija je prostija nego sto mislis, kazem nazalost zato sto to otezava programiranje. Naime, iako TCP podaci putuju u "paketima" sa klijentske (i serverske) strane TCP podaci se posmatraju kao kontinualni niz bajtova, dakle nema paketa/poruka. Hocu da kazem da je mopguce sledece:

1. klijent salje 10 puta po 10 bajtova - server prima svih 100 bajtova odjednom
2. klijent salje 10 puta po 10 bajtova - server prima 100 puta po 1 bajt
3. sve kombinacije izmedju 1. i 2. su moguce

Dakle to sto klijent posalje 20 bajtova u jednom send() pozivu ne znaci da ce server svih 20 da primi u jednom recv() pozivu, mozda primi manje, a mozda i vise (ako je posle posalto jos nesto)...

Dakle ... knjigu u ruke ... salim se.

I da, kada se bajtovi jednom procitaju sa recv() onda se brisu iz bafera (samo oni koji su procitani).

Hope this helps.
Pozdrav

<< tko leti vrijedi, tko ne leti ne vrijedi >>
23.09.2004. u 08:53 

erkan
Sarajevo

Član broj: 12339
Poruke: 261
195.222.35.*

ICQ: 238530669


Profil

icon Re: TCP/IP i duzina buffera23.09.2004. u 09:59
OK, hvala!
Koliko sam shvatio, to znaci da nikada nisam siguran da cu jednim
recv(...) primiti jednu cjelovitu poruku (mada je dosada uvijek uspjevalo).


Samo se budala saplice na kamen iza sebe.
23.09.2004. u 09:59 

markom
Marko Milivojević
Senior Network Expert, Vodafone
64°08´N - 21°56´W

Administrator
Član broj: 18427
Poruke: 3926
*.lina.net

Jabber: markom@elitesecurity.org
ICQ: 2354227
Sajt: markom.info


Profil

icon Re: TCP/IP i duzina buffera23.09.2004. u 10:36
Šta tačno podrazumevaš pod "porukom"? Takođe, laboratorijske uslove ne treba mešati sa pravim Internetom... Za početak, u TCP komunikaciji postoji jedan parametar koji se zove MSS, tj. Maximim Segment Size. Probaj da izmeniš taj parametar u tvojoj laboratoriji pa da testiraš...

Marko.
23.09.2004. u 10:36 

erkan
Sarajevo

Član broj: 12339
Poruke: 261
195.222.35.*

ICQ: 238530669


Profil

icon Re: TCP/IP i duzina buffera24.09.2004. u 13:49
Pod porukom podrazumjevam niz bajta (od 20 do 300)
koji salje od servera prema klijentu ili obratno, pri cemu ta poruka sadrzi odredjene podatke koji odredjuju sljedecu akciju koja se treba izvrsiti na serveru ili klijentu.
A, pravo da ti kazem, ne znam sta je taj >> Maximim Segment Size <<
i kako da ga izmjenim?

Mada u medjuvremenu sam nasao rjesenje mog problema sa porukama varijabilne duzine.
Poruke koje primam uzimam iz buffera u fiksnoj duzini smjestam u svoj interni buffer par puta veci od primljene poruke, a onda uzimanjem parametra i siftanjem ulijevo uspjevam da obezbjedim da se poruke predaju na obradu u svojoj originalnoj velicini (koja je varijabilna).
Samo se budala saplice na kamen iza sebe.
24.09.2004. u 13:49 

markom
Marko Milivojević
Senior Network Expert, Vodafone
64°08´N - 21°56´W

Administrator
Član broj: 18427
Poruke: 3926
*.singidunum.net

Jabber: markom@elitesecurity.org
ICQ: 2354227
Sajt: markom.info


Profil

icon Re: TCP/IP i duzina buffera24.09.2004. u 20:26
RFC 793, strana 18.

Marko.
24.09.2004. u 20:26 

[es] :: C programiranje :: TCP/IP i duzina buffera

[ Pregleda: 807 | Odgovora: 5 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.