[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сокеты на php
NikolayKr
Добрый день.
Возникла необходимость с ПО на делфи отправлять данные через сокеты на PHP.
При получении данных сервер отправляет данные назад и разрывает связь.
Как подправит код на PHP, чтобы после отправки ответа сервер не разрывал связь, а ждал следующих данных
Код PHP:
#!/usr/bin/env php
<?php

$socket = stream_socket_server("tcp://мой_сайт.ru:8000", $errno, $errstr);

if (!$socket) {
die("$errstr ($errno)\n");
}

while ($connect = stream_socket_accept($socket, 30)) {
//$st='*' . stream_socket_recvfrom($connect, 1500, STREAM_OOB);
$st='*' . fgets($connect, 150);
$st=$st . '*';

fwrite($connect, $st . "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\n\r\nПривет123");
fclose($connect);
}
fclose($socket);
waldicom
while(1){
тут читай и отвечай;
}

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
killer8080
ты же сам коннект рвёшь
    fclose($connect);
NikolayKr
Не работает даже так

#!/usr/bin/env php
<?php

$socket = stream_socket_server("tcp://wanart.ru:8000", $errno, $errstr);

if (!$socket) {
die("$errstr ($errno)\n");
}

while (1) {
$connect = stream_socket_accept($socket, 300);
//$st='*' . stream_socket_recvfrom($connect, 1500, STREAM_OOB);
$st='**' . fgets($connect, 150);
$st=$st . '*';

fwrite($connect, $st . "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: keep-alive\r\nContent-Length: 9\r\n\r\nПривет123");
}
fclose($socket);
?>
waldicom
Пошел читать про эту функцию, там есть пример:
http://www.php.net/manual/en/function.stre...server-examples

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
NikolayKr
Попробывал - результат тот же. Первое сообщение принимает, а остальные - нет. После отключения и повторного подключения все повторяется
killer8080
NikolayKr
может эта статья будет полезна
http://habrahabr.ru/post/57631/
NikolayKr
Спасибо, буду разбираться.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.