Сервер сокетов, который обрабатывает системные команды и запросы http - PullRequest
2 голосов
/ 01 ноября 2011

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

Я создаю приложение для iphone, по функциональности похожее на такие приложения, как «Air Video» и «Air Playit».Приложение должно взаимодействовать с сервером, работающим на удаленном хосте.Этот сервер должен быть в состоянии выполнить команду, отправленную iphone, для кодирования видео и передачи его по http.

В моем случае мое приложение iphone отправляет команды для выполнения на удаленном хосте.на удаленном хосте работает сервер сокетов Python , прослушивающий, например, порт 3333. На iphone я просто использую

"CFStreamCreatePairWithSocketToHost", "CFWriteStreamOpen" и "CFReadStreamOpen«

для подключения, записи и чтения данных.

Мой удаленный хост успешно перехватывает команды и запускает кодировку.Чтобы обслуживать содержимое, мне нужно запустить отдельный http-сервер (я использую Python simpleHTTPServer ), который прослушивает другой порт.

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

Я уверен, что что-то упустил, но, пожалуйста, потерпите меня, этомоя первая попытка создания приложения.

1 Ответ

0 голосов
/ 03 ноября 2011

Кодируйте ваши системные команды в специальные HTTP-запросы. Решите, что нужно сделать (выполнить команду или передать содержимое), основываясь на HTTP-запросе, а не на входящем порте. Если вам нужно использовать отдельные http-серверы (как вы сказали), рассмотрите возможность создания слоя, который получает все от устройств и отправляет их на другие серверы (или порты) на основании запроса.

...