GRP c Управление соединениями не соответствует количеству соединений - PullRequest
0 голосов
/ 23 января 2020

У нас есть проект, который построен на двунаправленном GRP c клиент / сервер в C ++. Клиент устанавливает только одно соединение с сервером. На сервере будет несколько клиентов. С помощью команды «netstat» на стороне сервера отображаются несколько установленных подключений от одного и того же клиента, но клиент имеет только одно активное подключение к этому серверу за один раз.

Ниже приведен один пример:

на сервере сторона:

netstat -an | grep "port" | grep "clientip"

tcp6 0 0 serverip: указатель порта: 61501 УСТАНОВЛЕННЫЙ

tcp6 0 0 serverip: указатель порта : 60241 ESTABLISHED

tcp6 0 0 serverip: клиентская подсказка порта: 54173 ESTABLISHED

tcp6 0 0 serverip: клиентская подсказка порта: 48677 ESTABLISHED

tcp6 0 0 сервопривод: портовая клиентка УСТАНОВЛЕН

на стороне клиента:

netstat -an | grep "serverip"

tcp6 0 0 clientip: 53149 serverip: порт УСТАНОВЛЕН *

Это кажется что серверная сторона не может удалить устаревшие соединения. Следствием этого является то, что сервер может превысить максимальный лимит соединения, что вызовет другие проблемы.

Кто-нибудь видит те же симптомы? Есть ли какие-либо предложения с точки зрения управления соединением grp c?

1 Ответ

0 голосов
/ 29 января 2020

Не могли бы вы попробовать включить keepalive для ваших соединений?

...