我已经搜索并尝试了数周,以找到我可以理解并轻松实现的解决我的问题的方法,但我并不高兴。所以,如果有人能让我摆脱痛苦,我将不胜感激。
我正在构建一个功能类似于“Air Video”和“Air Playit”等应用程序的 iphone 应用程序。该应用程序应与远程主机上运行的服务器通信。该服务器应该能够执行由 iphone 发送的命令来编码视频并通过 http 流式传输。
在我的例子中,我的 iPhone 应用程序发送要在远程主机上执行的命令。远程主机正在运行一个 python 套接字服务器,例如监听端口 3333。 在 iphone 上,我只是在使用
"CFStreamCreatePairWithSocketToHost", "CFWriteStreamOpen" and "CFReadStreamOpen"
连接、写入和读取数据。
我的远程主机,成功拦截命令并开始编码。 为了提供内容,我必须运行一个单独的 http 服务器(我使用的是 Python simpleHTTPServer),它正在监听另一个端口。
我想做的是对系统命令和 http 请求使用相同的端口。 我上面提到的应用程序似乎就是这样做的,我注意到它们有自己的内置网络服务器。
我确定我遗漏了一些东西,但请耐心等待,这是我第一次尝试构建应用。
最佳答案
将您的系统命令编码为特殊的 HTTP 请求。根据 HTTP 请求而不是传入端口来决定要做什么(执行命令或提供内容)。如果您需要使用单独的 http 服务器(如您所说),请考虑使用一个层来接收来自设备的所有内容并根据请求分派(dispatch)到其他服务器(或端口)。
关于http - 处理系统命令和 http 请求的套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969735/