You could store the static (non-changing) text in a couple of C strings and then call writev() to communicate everything. That would save you the step of continuously reconstructing the header.
thanks for the reply.
I haven't started to code, but maybe in some weeks.
It's more a chatroom with long polling that I will be building.
All your app is in one dedicated server?
Yes, right now its all on one server. The parts of the app that serve the pages you see are separate from the 1 second updater and could be on separate servers.
Right now the C app listens on a different port that lighttpd will redirect to if a pertinent request comes in.
There is a parent process that will fork upon connection and pass the socket to child which pulls the requested data and quickly returns it.
The one thing you will also need if you go this route is a SIGALRM handler. You just basically call signal() and set a flag before each socket read and write. So if the socket takes too long to return the signal gets called and kills the child process. Then you clear the flag on the other side of the socket read/write call so that the signal doesn't kill the process if the call returns on time.