При разработке сервера Asyn c C ++ GRP C, как я могу отличить клиента, выполняющего запись, от разрываемого соединения?
Я передаю данные с клиента на сервер и когда клиент завершит работу, он вызовет WritesDone, чтобы сообщить серверу, что он должен завершить sh сохранение файла. Если у меня есть сервер syn c, я могу провести различие между клиентом, вызывающим WritesDone, и разрывом соединения, вызвав context-> IsCancelled (), но в режиме asyn c вы не можете вызывать IsCancelled, пока не получите тег, указанный в AsyncNotifyWhenDone. .
В обоих случаях (WritesDone и Call done) тег Read возвращается с ok, установленным в false. Тем не менее, тег AsyncNotifyWhenDone, который позволил бы мне дифференцировать, прибывает после тега чтения.
Я буду знать после того, как попробую вызвать fini sh (он также вернет false), но мне нужно знать, прежде чем я вызовите fini sh, так как моя окончательная обработка может завершиться неудачей, и я больше не могу вернуть ошибку, если я уже вызвал fini sh.