Создание приложения для iOS, которое взаимодействует с Windows - PullRequest
0 голосов
/ 12 июля 2019

Я ищу создание приложения для iOS, которое взаимодействует с приложением Windows (также сделанным мной).В прошлом я создал несколько базовых приложений для iOS, но мне нужна помощь по особенностям взаимодействия с устройством Windows.

Очень похоже на то, как будет работать приложение «удаленная мышь» (где вы устанавливаетеПриложение для iOS и загрузите партнерский установщик Windows, который затем говорит вместе) Я ищу, чтобы мой поиск приложения и затем установил связь с программой, установленной в локальной сети.

Есть ли рамки или рекомендуемый путь, когдаразрабатываете приложение такого рода?Само приложение будет просто передавать информацию, доступную для программы, установленной в Windows, в качестве доказательства концепции, а затем дополнительные функции будут добавлены позже.В первую очередь я сосредоточен на создании рабочей основы, где приложение iOS и программа Windows общаются по локальной сети.

1 Ответ

0 голосов
/ 12 июля 2019

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

Например, для простого протокола: если вы хотите отправить сообщение (это сообщение может быть строкой, целым числом или чем-то еще), вы отправляете четыре байта, представляющих целое число, которые определяют размер фактического сообщения (которое было сериализовано в байты ), затем вы отправляете фактические байты сообщения, на другом конце вы читаете четыре байта, которые, как вы знаете, представляют фактический размер сообщения, теперь вы знаете, что ожидаете определенного количества байтов, которое представляет полное сообщение, поэтому вы продолжаете читать байты до тех пор, пока все эти байты не получат правильное сообщение. После получения сообщения вы ждете еще четыре байта, которые представляют новый размер сообщения и т. Д.

Само сообщение может быть любым сериализуемым типом данных. Большинство языков программирования поддерживают сериализацию примитивных типов по умолчанию. Если вы хотите сериализовать пользовательский тип данных, одним из вариантов является кодирование вашего сообщения (которое, например, является экземпляром структуры, соответствующей протоколу Codable) с использованием Swift JSONEncoder, поэтому в на другом конце вы ожидаете байты JSON, которые затем можно декодировать обратно в исходный объект. Еще одним хорошим вариантом для сериализации структурированных данных является protobuf .

Вы можете взглянуть на этот класс , написанный на C #, это похожая реализация того, что я здесь описал, она немного другая, но вы поймете идею.

Примечание: порядок байтов по умолчанию (порядковый номер) может различаться в зависимости от платформы и языка программирования, он может быть как с прямым порядком байтов, так и с прямым порядком байтов.

CocoaAsyncSocket - хорошая библиотека для работы с сокетами в iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...