В сокетах TCP / IP, как сервер узнает, что клиент занят и
не получает данные
Если TCP постоянно отправляет данные, которые одноранговый узел не подтверждает, в конечном итоге окно отправки заполнится. В этот момент TCP собирается буферизовать данные для «отправки позже». В конечном итоге размер буфера будет достигнут, и send(2)
будет зависать (что обычно не происходит).
Если send(2)
начинает зависать, это означает, что равноправный TCP не подтверждает данные .
Очевидно, что даже если одноранговый TCP принимает данные, это не означает, что одноранговое приложение фактически использует их. Вы можете реализовать свой собственный механизм ACK
поверх TCP
, и это не так необоснованно, как кажется. Это может привести к тому, что клиент будет время от времени отправлять сообщение «Отправить мне больше».