Ответили на мой вопрос ...
Сначала я получал sbSrc из sbDest (для реализации функциональности копирования / вставки), используя
SpannableStringBuilder ssbSrc = new SpannableStringBuilder (ssbDest.subSequence (start, end));
subSequence () действительно копирует промежутки, но не клонирует их, поэтому ssbSrc заканчивается САМыми промежутками (теми же экземплярами объектов, а не просто теми же типами), что и в ssbDest ... и именно поэтому sbDest.insert ( ) не вставляет их.
Если необходимо сделать это, почему не только переносят сеть comms код с интерфейсом SOAP или HTTPHandler?
Затем Ваши пакеты будут соответствовать HTTP, Вы пройдете через брандмауэры и общее счастливое?
Это будет намного легче, чем разрешение всей установки и операционных проблем, которые Вы получите от мультинамерения порта 80.
Не возможно сделать виртуальный хостинг для других доменов, слушающих на порте 80. Только один процесс может послушать на порте. Виртуальный хостинг происходит на прикладном уровне на основе HTTP-заголовков.
Другой проблемой, с которой можно столкнуться, являются прокси-серверы. Не вид, который пользователь настраивает, но автоматические прокси компаниями или ISPs. Они не поймут протокол Вашего приложения и вероятно перестанут работать.
Наконец, если Ваше приложение будет работать на варианте Unix/Linux, то порт 80 потребует полномочий пользователя root.
Я могу думать о двух причинах: во-первых при выполнении его для обхождения брандмауэра компании, Вы нарушите политику безопасности и во-вторых, Вы будете использовать зарезервированный порт для протокола, что это не регистрируется, для которого мог вызвать значительный беспорядок клиентам, пытающимся взаимодействовать с Вашей системой (как, Google, например) и значительные головные боли для Вашего приложения, когда они делают.
РЕДАКТИРОВАНИЕ В системах Unix низко пронумеровало порты, требуют, чтобы привилегированные учетные записи работали. Это было бы другой причиной постараться не делать его в той среде, поскольку Вашему приложению, возможно, понадобятся более высокие полномочия, чем в других отношениях необходимый.
Я признаюсь в том, что работал вокруг Драконовского брандмауэра при наличии ssh сервера, слушают на порте 80 назад домой и использующий ssh туннелирующий для обеспечения доступа к другим серверам и сервисам. Я спешу добавлять, что я сделал это с благословением людей, администрирующих брандмауэр---, все мы согласились, что это было лучшее решение проблем под рукой.
Я спешу добавлять, что эта тактика представляет порт 80 бесполезных для его намеченной цели, которая меня устроила, так как это была моя персональная рабочая станция так или иначе. Если бы у Вас есть только одна машина в Вашем домене, это была бы проблема. Но имея машину я мог выделить для обслуживания, ssh от порта 80 не создал установки или операционных проблем. Я просто работал /etc/init.d/apache stop
и затем работал sshd
слушать порт 80. Затем я был хорош для движения в течение нескольких месяцев, я должен был сделать это.
Автоматизированные сканеры, кто приезжает, пробивая в порт 80 из моей персональной рабочей станции, могут пойти, зависают :-)
Для ответа на Вас, второй вопрос "является этим возможный использовать своего рода виртуальный хост, слушающий на порте 80":
Да, существует, и это назвало виртуальный хостинг и обрабатывается большинством современных веб-серверов. Но затем все запросы из Вашего приложения должны запуститься с протокола HTTP 1.1, где хост указан. Ваше приложение, вероятно, должно быть приложением CGI. Но это, вероятно, не, что Вы хотите.
Другой путь состоит в том, чтобы позволить Вашему приложению взять под свой контроль порт 80 и перенаправить все запросы HTTP веб-серверу. Его грязное и если Ваше приложение понижается, веб-сервер - также.
Решение состоит в том, чтобы иметь больше чем один IP-адрес на Вашем сервере (можно связать больше чем один IP-адрес на nic). Затем можно связать mydomain.com:80 в адресе 1 к веб-серверу и myapp.mydomain.com в адресе 2 к приложению, но они все еще находятся на том же сервере.
И отвечать на Ваш первый вопрос: "есть ли любая причина, я не должен запускать программное обеспечение сервера на порте 80": Да, это - плохая практика. Ожидайте получать много запросов HTTP от автоматизированного сканирования. Можно принять решение ответить на них с корректным http-заголовком или проигнорировать их.