C ++ отправляет данные на веб-сервер - PullRequest
1 голос
/ 14 февраля 2012

Валюта Я пытаюсь отправить данные на веб-сервер с помощью C ++ Прямо сейчас я использую libcurl, но я столкнулся с проблемой, так как он медленный.

Я немного знаком с c ++, поэтому мне было интересно, какие еще есть альтернативы для отправки данных на веб-страницу, которая в свою очередь сохраняет их в базе данных.

У меня сейчас что-то нравится

sprintf(data, "&val1=&val2=&val3=&val4.....",val1, val2, val3, val4....);
then send this data using curl post

проблема в том, что val1, val2, val3, val4 фактически извлекаются из программы, которая фактически генерирует 2 выборочных значения в секунду, следовательно, функция curl становится медленной. Так может кто-нибудь помочь мне с лучшими альтернативами?

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Если вам нужно ради скорости, вы всегда можете попробовать открыть сокет с помощью веб-сервера и напрямую передать сгенерированное сообщение POST по TCP / IP. При этом вам все равно придется ждать правильного рукопожатия, а также ответа от сервера в состоянии передачи по TCP / IP, поэтому воспринимаемая "медлительность" соединения может быть не под вашим контролем.

Для скорости, как правило, UDP предпочтительнее TCP / IP из-за отсутствия проверки ответа и других гарантий передачи пакетов. Однако в этом случае вам, возможно, придется буферизовать значения, поступающие из вашего источника, прежде чем пытаться отправить их на веб-сервер, надеясь, что в конечном итоге вам не хватит места в буфере.

0 голосов
/ 14 февраля 2012

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

Перед отправкой буферизуйте больше ваших данных.Отправить его большими кусками.Изучите технику, называемую двойной буферизацией, чтобы не пропустить обновления.

http://en.wikipedia.org/wiki/Multiple_buffering

...