За socket....
4 отговора
275 прегледа
За socket....
Как да отгатна, на TCP сокет, че send() e изпратила данните и те са получени и прочетени с recv() от отсрещната страна?
Общо взето, като спра да чета от сокета с recv(), a продължа да изпращам към него от другата машина със send(), последната блокира след като изпрати N байта, където N по никакъв начин не се връзва с размера на буферите на сокетите. Губи ми се идеята, тези N байта дали са получени от приложението или си стоят в буферите на отсрещната машина.
Общо взето, като спра да чета от сокета с recv(), a продължа да изпращам към него от другата машина със send(), последната блокира след като изпрати N байта, където N по никакъв начин не се връзва с размера на буферите на сокетите. Губи ми се идеята, тези N байта дали са получени от приложението или си стоят в буферите на отсрещната машина.
Re: За socket....
mojesh da razberesh samo ako napravish protokola taka che otsreshtnata mashina da ti wryshta potwyrjdenie.
Re: За socket....
Сетих се за протокол от по-високо ниво, но ми се иска да има по-лесен начин, все пак ТCP има SEQ->ACK....обаче Windows...drivers...providers...айдеее...
Re: За socket....
ACK-овете подтвърждават получаването на данните в буферите, а не че са прочетени от приложението.
Re: За socket....
Да, така е и това би могло да ми свърши работа, т.к. отворения сокет на някой си порт е асоцииран с буферите на TCP за съответния порт (ACK e част от TCP). Въпроса ми тогава става, как да позная колко байта са записани в буферите на отсрещната машина?