Задачка на интервью. Пакеты.

? ?????? ???????, ??????? ? ??? ???????????? ?? ??????????? ??????? ? ????? ???????? ??? ???, ???????. ???? ???????????? ???????:

 char get_byte();

??????? ?????? ???? ?? ??????? ??????????. ??? ?????????????, ??????? ????, ???? ?? ?????? ????????? ????. ?? ?????????? ???????????? ?????? ?????????? ???????: ??? ????? ?????, ?? ???????? ??????? ??????. ????? ?????? ???????? ? ???? ????????? ??????, ?.?. ?? ????? ??? ?????.

?????? ??????.

????? ???????? ??????? recv, ?????????? ????????? ?????:

 size_t recv(char* buf, size_t size);

? buf ?????????? ????????? ?? ?????, ???? ?????? ???? ??????? ????? (?????????, ??????? ?????????). size ????????? ?????? ????? ??????. ??????? ?????????? ?????? ????? ?????? (??????? ?????????) ???? ????? ??????? ???????. ? ?????? ?????? ???????????? 0.

??????????, ?? ???????? ???????????? ?????, ?? ????? ?????. ?????????? ??????? ????? ???? ?????? ? ?? ??????????? ?????. ??????? recv ?????????? ?? ??????? ???????. ?????? ??????? ???. ?????????? ???.

???????? ?? ????? ?????????? ??? ??? ???? ??????? ??????? ?? ?????, ??? ?????? ?? ???? ????????????. ?? ??????? ???? ?? ????????? ???? ???????.

Cross-posted from blog.not-a-kernel-guy.com.