Я пишу программу, которая будет делать 1 запрос GET в секунду на сервер. Я использую сокет (QTcpSocket) и хочу знать, должен ли я включать «Соединение: Закрыть» в свой запрос, а затем воссоздавать сокет для каждого запроса, или лучше просто сохранить сокет живым, потому что я повторяю один и тот же запрос раз в секунду.
Лучше держать сокет открытым для частых запросов или каждый раз закрывать сокет
comment
Я бы сказал, держите его открытым. Но лучший способ узнать это — протестировать его, чтобы увидеть, как он влияет на ваше приложение.
- person towr   schedule 16.12.2013
comment
По каналу с высокой задержкой (например, через спутник) вы обнаружите, что 1 запрос в секунду невозможен при постоянном подключении/отключении.
- person Martin James   schedule 16.12.2013
Ответы (2)
Установление TCP-соединения занимает более одного кругового пути. Если ваше соединение является соединением SSL, есть еще несколько циклов. Если вы планируете связываться с одним и тем же пунктом назначения несколько раз, вероятно, стоит установить соединение и использовать его, пока оно еще работает. Вероятно, вам следует сделать свой код таким, чтобы отправка запроса не зависела от текущего соединения, и чтобы он [повторно] устанавливал соединение, когда это необходимо.
person
Dietmar Kühl
schedule
15.12.2013
Для открытия сокета требуется 3 обмена пакетами, а для его закрытия — 4. Вы должны стремиться держать соединения открытыми, а не нести эти накладные расходы при каждой транзакции.
person
user207421
schedule
15.12.2013