php сокеты, ошибка использования socket_connect

70
22 марта 2022, 13:10

Есть нейронная сеть, ожидающая запросов от сервера, написанного на php. При клике я со страницы отправляю запрос на сервер и получаю ответ. Так как программа маленькая, я не хотел использовать вебсокет и решил использовать ajax: я делаю запрос на страницу php и оттуда делаю запрос на сервер, т.к. php socket проще. При первом запросе все все идет хорошо. Но при втором запросе, когда 1 уже закончен, появляется ошибка на (1):

Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)

Я не знаю, в чем дело, ведь 1 запрос уже закончен, и адрес уже должен быть свободным. Помогите понять мне мою ошибку. Вот код:

JS

$.ajax({
            url: 'http://nnet.am/query.php',
            ...

query.php


$data = $_POST['data'];
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '127.0.0.1', 80);
socket_connect($socket, '127.0.0.1', 2083); // (1)
socket_write($socket, $data);
$data = socket_read($socket, 1024);
socket_close($socket);
echo $data;

SERVER

...
$socket = stream_socket_server('127.0.0.1:2083', $errno, $errstr);
if(!$socket) die("Socket fault!");
print "Server is ready!\n";
while($connect = stream_socket_accept($socket, -1)) {
    print "New connection!\n";
    $data = json_decode(fread($connect, 1024));
    input($data, $n);
    print "Entered!\n";
    calc($n, $w);
    print "Counted!\n";
    fwrite($connect, json_encode(result($n)));
    fclose($connect);
}
READ ALSO
Некорректно работает AJAX пагинация

Некорректно работает AJAX пагинация

Всем привет На сайте есть пагинация к статьям, которая работает следующим образом: пользователь нажимает кнопку 'Показать больше статей',...

95
Блок "Поделиться" от Яндекс не отображается

Блок "Поделиться" от Яндекс не отображается

Блок установлен при помощи кода:

141
Как сверстать многоуровневое меню?

Как сверстать многоуровневое меню?

Как сверстать такое многоуровневое меню?

209
Получить текущий url iframe?

Получить текущий url iframe?

Возможно ли и как получить текущий url iframe ( отличный от начального src ) ?

64