Получение большого количества небольших сообщений TCP от нескольких клиентов - PullRequest
0 голосов
/ 16 марта 2019

Каков наилучший способ получения нескольких сообщений TCP от нескольких клиентов на сервере Linux?

Я пытаюсь сделать что-то похожее на flightaware / flightradar24 / adsb-exchange, но не знаю, как это сделать.об этом.

Я обнаружил, что для кода на стороне клиента, socat - лучший вариант.Поскольку каждый клиент будет получать до 200-600 сообщений в секунду на порт, и ему необходимо пересылать каждое сообщение на порт с минимальной задержкой (curl - при каждом сообщении возникают проблемы с перегревом и отставанием).

Я пытался использовать socat, но я не знаю, как обрабатывать получение этих сообщений.Как и при настройке прослушивателя, он подключается только к клиентам, которые запускают socat после запуска прослушивания socat прослушивателя, и игнорирует предыдущие подключения socat.Похоже, что в конечном итоге он также отключает сокеты и не имеет избыточности в случае, когда серверу слушателя необходимо перезапустить.

Если возможно, я бы также хотел найти способ идентифицировать клиента, отправляющего сообщение, по возможности по ipили добавив что-либо к сообщению в порту до того, как socat проксирует его (с небольшим дополнительным аппаратным воздействием).

Я извиняюсь за несколько расплывчатый вопрос, я подумал о том, как лучше всего это сделать длянесколько недель, и постоянно изучал / задавал вопросы тем, кто уже сделал что-то подобное, но я получаю ответ «вам нужно выяснить, как отправлять огромное количество TCP-сообщений», в котором я не знаюлучший способ получить такое.

...