За socket....

4 отговора 275 прегледа
#1

За socket....

Как да отгатна, на TCP сокет, че send() e изпратила данните и те са получени и прочетени с recv() от отсрещната страна?
Общо взето, като спра да чета от сокета с recv(), a продължа да изпращам към него от другата машина със send(), последната блокира след като изпрати N байта, където N по никакъв начин не се връзва с размера на буферите на сокетите. Губи ми се идеята, тези N байта дали са получени от приложението или си стоят в буферите на отсрещната машина.

Отговор
в отговор на @@@ #2

Re: За socket....

mojesh da razberesh samo ako napravish protokola taka che otsreshtnata mashina da ti wryshta potwyrjdenie.

Отговор
в отговор на l #3

Re: За socket....

Сетих се за протокол от по-високо ниво, но ми се иска да има по-лесен начин, все пак ТCP има SEQ->ACK....обаче Windows...drivers...providers...айдеее...

Отговор
в отговор на @@@ #4

Re: За socket....

ACK-овете подтвърждават получаването на данните в буферите, а не че са прочетени от приложението.

Отговор
в отговор на Penguin #5

Re: За socket....

Да, така е и това би могло да ми свърши работа, т.к. отворения сокет на някой си порт е асоцииран с буферите на TCP за съответния порт (ACK e част от TCP). Въпроса ми тогава става, как да позная колко байта са записани в буферите на отсрещната машина?

Отговор