i’ve been searching and trying for weeks now to find a solution to my issue that I can understand and easily implement but I had no joy. So i would be very grateful if someone could put me out of my misery.
I’m building an iphone app similar in functionality to apps like “Air Video” and “Air Playit”. The app should communicate with a server running on a remote host. This server should be able to execute a command sent by the iphone to encode a video and stream it over http.
In my case, my iphone app sends commands to be executed on a remote host. the remote host is running a python socket server listening for example on port 3333.
On the iphone, i’m simply using
“CFStreamCreatePairWithSocketToHost”, “CFWriteStreamOpen” and
“CFReadStreamOpen”
to connect, write and read data.
My remote host, successfully intercepts the commands and starts the encoding.
To serve the contents, I’m having to run a separate http server (i’m using Python simpleHTTPServer) which is listening on another port.
What I would like to do is use the same port for both system commands and http requests.
The apps I’ve mentioned above seem to do it that way and I’ve noticed they have their own build-in web server.
I’m sure I’m missing something but please bear with me this is my first attempt at building an app.
Encode your system commands into special HTTP requests. Decide which thing to do (execute command or serve the contents) based on HTTP request, not on the incoming port. If you need to use separate http servers (like you told), consider having a layer that receives everything from the devices and dispatches to other servers (or ports) based on the request.