Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   socket_create_listen (https://forum.antichat.xyz/showthread.php?t=123622)

Ru}{eeZ 04.06.2009 16:58

socket_create_listen
 
Почему при обращении к серверу, сервер реагирует только на 1 символ?

PHP код:

<?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/ как раз, то что тебе нужно!


Время: 23:35