Я пытаюсь написать серверную программу для C, которая сможет обрабатывать плохо написанную клиентскую программу. Клиент отправляет на сервер кучу команд, а затем закрывает сокет. После того, как сервер выполнит каждую команду, он должен отправить либо 0, либо 1 клиенту в зависимости от того, была ли команда неудачной или нет.Возможно ли считывание из клиентского сокета после отсоединения клиента?
Если я не пытаюсь отправить клиенту этот байт после каждой команды, все в порядке, и я могу продолжить чтение команд на стороне сервера после того, как клиент закрыл сокет. Однако, если я попытаюсь написать этот 1 байт, после чтения команды 1 от клиента, я больше не могу читать команды (сброс соединения с помощью одноранговой сети).
Есть ли способ справиться с этим? Как в, чтобы писать и читать все команды?
Я не понимаю, что вы пытаетесь сделать. Клиент получает ответ от сервера, а затем отключается. Как сервер должен получать больше команд от клиента после отсоединения клиента? –
Я не понял. Клиент отправляет x команды на сервер за меньшее время, чем сервер, чтобы иметь дело с 1 командой (команды обрабатываются по 1 за раз). Если я не пытаюсь написать клиенту, даже после того, как клиент закроет сокет, я все равно могу прочитать оставшиеся команды x-1. Если я пишу клиенту, я больше не могу читать команды. –