Отправка / получение данных через TCP в Linux

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

С чего мне начать? я должен пойти с C ++? и, кроме того, я действительно чувствую себя комфортно с PHP, это то, что можно сделать через это? Я хотел бы уделить этому время и разработать что-то очень надежное.

В конце, не могли бы вы дать несколько рекомендаций о том, с чего начать, чтобы стать хорошим в Linux, я разработал для Windows, но я хочу перейти на Linux и освоить его.

Благодарю.

1

Решение

Ваш вопрос немного расплывчатый.

  • какое устройство создает данные?
  • Какие возможности интерфейса есть у устройства генерирования данных (последовательный порт, USB, Ethernet. Wifi)?

Самое простое решение на вашем компьютере с Linux — это, вероятно, сценарий оболочки, опрашивающий последовательный порт (может быть даже USB-порт, используемый как последовательный) и записывающий текст в простой текстовый файл — построчно — откуда PHP может его прочитать.

пример: cat < /dev/ttyS0 >> ./input.txt

(Кстати, эту командную строку можно запустить даже из PHP-программы)

В зависимости от того, какие протоколы связи доступны как на вашем Linux-компьютере, так и на устройстве генерирования данных, архитектура решения может стать более сложной и более функциональной.

Многое можно сделать из оболочки (= командная строка) в Unix и не обязательно вызывать разработку программ на Си.

0

Другие решения

Если вы ищете учебник по сетевому программированию с сокетами, есть классическое руководство Биджа для всех времен — http://beej.us/guide/bgnet/

очень доступный для новичков и IMHO, один из лучших написанных учебников / пособий по программированию сокетов.

1

Если вы привыкли использовать Windows и .NET, вы можете скомпилировать и запустить свою программу для Linux благодаря Mono http://www.mono-project.com/. Если вы заинтересованы в отправке и получении материалов по HTTP, вы можете посмотреть на http://webserver.codeplex.com/. Я использую оба.

1

Я бы начал с сокетов в PHP или Java. Затем переходите оттуда, когда все это имеет смысл.

1

Если вы действительно хотите изучать * nix системы и хотите решить эту проблему, вы должны научиться использовать трубы из командной строки.

Для вашего примера USB to Web я бы написал две программы:

  • тот, который читает данные с устройства USB и печатает их на стандартный вывод (консоль)
  • тот, который читает данные из стандартного ввода и публикует их в Интернете (вы, вероятно, могли бы написать эту секунду как скрипт bash, использующий утилиту ‘curl’)

Оттуда вы просто перенаправили бы вывод одного приложения на вход другого:

$ usb_program | web_program

Вот как системы Unix / Linux были впервые разработаны для использования, и ваша проблема представляет собой прекрасный пример того, что должен решать трубопровод.

1
По вопросам рекламы [email protected]