PDA

Просмотр полной версии : socket_create_listen


Ru}{eeZ
04.06.2009, 16:58
Почему при обращении к серверу, сервер реагирует только на 1 символ?


<?php
set_time_limit(120);
$socket = socket_create_listen('54321');
if(!$socket) die('Error');
while(true) {
$client = socket_accept($socket);
socket_write($client,'Hello, user :)');
while(true) {
$read = trim(socket_read($client,256));
if($read == '!close') break;
if($read == '!exit') {
socket_close($socket);
break 2;
}
socket_write($client,$read."\n");
}
socket_close($client);
}
socket_close($socket);
?>


Результат следующий:

Hello, user :)vv
dd
vv
dd
bb
vv
bb
dd
bb

Ru}{eeZ
04.06.2009, 17:13
Нашёл один из выходов:
Константа PHP_NORMAL_READ в socket_read(), т.е. новая строчка выглядит так: $read = trim(socket_read($client,256,PHP_NORMAL_READ));

Krist_ALL
04.06.2009, 17:14
Очень хорошая статья на эту тему http://i-novice.net/sokety-v-php/ как раз, то что тебе нужно!