Предположим, у меня есть собственный сервер, который прослушивает соединения через какой-то порт и, как только он получил соединение, он начинает отправлять данные (что-то вроде логгера). Вот первый вопрос:
Это могут быть только двоичные данные? На самом деле мне нужно всего два ненулевых 8-битных значения, и я думал о байте с 0 значениями, чтобы отделить каждую новую порцию данных.
Эти три байта будут отправлены один раз или могут быть дважды в секунду.
Итак, теперь я ищу фрагмент кода в Swift 2 для правильного чтения этих данных. Обычно я ожидаю звонить
connectSocket(IP,port)
, который будет подключаться к сокету, и как только он получит первый кусок данных,
socketCallBack()
называется, или как-то так.
Интуитивно, мне не нравится идея проверки данных в цикле while (true). Или это правильный путь?
Я видел пример, когда он сначала отправляет запрос 'get' на сервер и сразу начинает ждать ответа. Возможно, я могу назвать это, используя таймер, раз в секунду? Будет ли это правильно?
Что меня беспокоит, так это трафик. Прямо сейчас я продвигал его через веб-сервер, но мне не нравится, что он тратит слишком много трафика на эти накладные данные http.
Возможно, с этими tcp-соединениями по таймеру это будет намного меньше, и это сэкономит еще больше трафика, если я установлю только одно соединение в начале и передам данные в этом соединении. Я прав?