Отправить отдельные команды на сервер через сокет с php - PullRequest
0 голосов
/ 19 сентября 2019

Прежде всего, я готов отредактировать заголовок, если он звучит слишком неразборчиво.

Я хочу отправлять команды через сокеты на сервер.Исходный код для создания соединения с сокетом в php:

$HOST = 'xx.xx.xx.xx';
        $PORT = 21567;
        $BUFSIZE = 1024;
        set_time_limit(0);
        $tcpSocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");
        $tcpSocketCon = socket_connect($tcpSocket, $HOST, $PORT) or die ("Could not connect to server\n");

        $speed = 30;
        $tmp = 'speed';
        $data = $tmp.$speed;
        socket_write($tcpSocket, $data, strlen($data)) or die ("Could not send speed data to server\n");

Если я попытаюсь отправить команду в сокет, например «Вперед», я получу вывод на печать

...
speed30Forward
...

Даже если я добавлю "\ r \ n" в мою функцию socket_write (), новый вывод будет

...
speed30
Forward
...

, но я не получу ответ от сервера.

Я исправил этопроблема с закрытием и повторным подключением сокета следующим образом:

$HOST = 'xx.xx.xx.xx';
        $PORT = 21567;
        $BUFSIZE = 1024;
        set_time_limit(0);
        $tcpSocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");
        $tcpSocketCon = socket_connect($tcpSocket, $HOST, $PORT) or die ("Could not connect to server\n");

        $speed = 30;
        $tmp = 'speed';
        $data = $tmp.$speed;
        socket_write($tcpSocket, $data, strlen($data)) or die ("Could not send speed data to server\n");

//added closing and reconnecting socket
        socket_close($tcpSocket);
        $tcpSocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");
        $tcpSocketCon = socket_connect($tcpSocket, $HOST, $PORT) or die ("Could not connect to server\n");

Есть ли альтернатива для отправки команд на сокеты отдельно?

Я пишу приложение веб-сервера для связи с SunfounderСмарт Видео Автомобиль для Raspberry Pi.Я могу перемещать колеса и камеру, но движение автомобиля невозможно.

Мне нужно отправить скорость, прежде чем я смогу отправить команды «Вперед» и «Назад» для управления автомобилем.

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