Показать сообщение отдельно
Старый 16.07.2005, 02:00
-MS- вне форума Посмотреть профиль Отправить личное сообщение для -MS- Найти все сообщения от -MS-
  № 1  
Ответить с цитированием
-MS-
 
Аватар для -MS-

Регистрация: Jun 2005
Сообщений: 367
По умолчанию опять сокеты, где не прав?

скрипт и флэшка в зипе... проблема такая, запускаем скрипт, запускаем флешку, отправляем первое сообщение, отправляется... отправляем второе сообщение, не приходит обратно... запускаем во второе окошко флешку, приходит сообщение из первого окна которое не отобразилось, отправляем сообщение,возвращается, а после этого все... тишина...
если лень архив качать, код тут
PHP код:
<?php

$address 
'127.0.0.1';
$port 5190;
$max_clients 100;

// массив клиентов
$client = Array();
//массив ожидания чтения из сокетов
$read=Array();

// создаем сокет
$sock socket_create(AF_INETSOCK_STREAM0);
// связываем имя с сокетом
socket_bind($sock$address$port) or die('Could not bind to address');
// прослушиваем соединения
socket_listen($sock);

//зацикливаем соединение
while (true) {
        
//принемаем соединения на сокете и пишем в массив ресурсы
        
for ($i 0$i $max_clients$i++){
                if ((!isset(
$client[$i]['sock']))||($client[$i]['sock'] == null)){
                        
$client[$i]['sock'] = socket_accept($sock);
                        break;
                }
        }
        
//ждем сообщения на сокетах
        
for($i=0;$i<$max_clients$i++){
                if((isset(
$client[$i]['sock']))&&($client[$i]['sock'] != null)){
                        if (
false === ($buf socket_read($client[$i]['sock'], 2048PHP_NORMAL_READ))) {
                                echo 
"socket_read() failed: reason: " socket_strerror($ret) . "\n";
                                break 
3;
                        }
                        
$buf=trim($buf);
                        if (
$buf == 'quit') {
                                
socket_close($client[$i]['sock']);
                                unset(
$client[$i]);
                        }
                        if (
$buf == 'shutdown') {
                                break 
2;
                        }
                        if(
$buf!=""){
                                
$talkback "[".date("h:m")."] $buf<br>".chr(0);
                                echo 
$talkback;
                                for(
$j=0;$j<$max_clients$j++){
                                        if((isset(
$client[$j]))&&($client[$j]['sock']  != null)){
                                                
$stat=socket_write($client[$j]['sock'], $talkbackstrlen($talkback));
                                                while(
$stat==false){
                                                        
socket_write($client[$j]['sock'], $talkbackstrlen($talkback));
                                                }
                                        }
                                }
                        }
                }
        }
}
//закрываем главный сокет
socket_close($sock);
?>
Вложения
Тип файла: zip www.zip (8.0 Кб, 100 просмотров)