Проблема с закрытием клиентского сокета в php

Я попытался написать проект PHP для связи с ПЛК, но у меня возникла проблема, когда я закрываю клиент сокета, он не закрывается сразу, количество подключенных устройств увеличивается, когда я вызываю функцию AJAX для перезагрузки значений, может ли кто-нибудь мне помочь? Я использую RS_sim для имитации ПЛК

моя страница

Мой код для создания и закрытия клиента сокета:

private function connect(){
// Create a protocol specific socket
if ($this->socket_protocol == "TCP"){
    // TCP socket
    $this->sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
} 

$result = @socket_connect($this->sock, $this->host, $this->port);
if ($result === false) {
    throw new Exception("socket_connect() failed.</br>Reason: ($result)".
        socket_strerror(socket_last_error($this->sock)));
} else {
    $this->status .= "Connected\n";
    return true;
}}

private function disconnect(){
socket_close($this->sock);
$this->status .= "Disconnected\n";}

Вы получили сообщение об ошибке для socket_close? Если не в PHP, то в симуляторе? Это длительный скрипт или просто одноразовое подключение? (Возможно, также попробуйте strace проверить ваш работающий скрипт.)

mario 09.03.2019 05:45

Ожидает ли сервер, что вы отправите команду закрыть соединение? Закрытие соединения в клиенте без сообщения серверу может быть недостаточным

Joni 09.03.2019 06:18

Спасибо за вашу поддержку, Марио и Джони, я попробую с настоящим ПЛК.

tidibi272 09.03.2019 08:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
59
0

Другие вопросы по теме