Я пишу клиент-серверное приложение с использованием сокетов на C ++.
Протокол связи по существу:
- Клиент подключается к серверу.
- Клиент "отправляет" команду ASCII на сервер.
- Сервер выполняет команду удаленно, получает результаты и отправляет результаты обратно клиенту.
результаты могут быть несколько мегабайт данных.После того, как все результаты отправлены клиенту, я бы хотел, чтобы сервер сигнализировал клиенту, что это сделано.
Является ли наилучшим способом closesocket (), или он должен отправить сообщение, которое указывает клиенту, что больше нет результатов, и клиент может решить, закрывать ли сокет или нет?Недостаток закрытия сокета состоит в том, что клиенту нужно будет установить новое соединение, если он хочет выполнить другую команду, но недостатком отправки сообщения обратно с сервера является то, что клиент должен сканировать каждый recv, чтобы определить, есть ли результаты.готово.
Какая лучшая практика?