Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   опять сокеты, где не прав? (http://www.flasher.ru/forum/showthread.php?t=66784)

-MS- 16.07.2005 02:00

опять сокеты, где не прав?
 
Вложений: 1
скрипт и флэшка в зипе... проблема такая, запускаем скрипт, запускаем флешку, отправляем первое сообщение, отправляется... отправляем второе сообщение, не приходит обратно... запускаем во второе окошко флешку, приходит сообщение из первого окна которое не отобразилось, отправляем сообщение,возвращается, а после этого все... тишина...
если лень архив качать, код тут
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);
?>


maksim_surguy 19.07.2005 00:07

Flash + PHP + Sockets chat
 
Вложений: 1
Here is a full source(created by me) of simple Flash+PHP+Sockets chat. enjoy. And sorry, I don't have time to explain any line of code.

-MS- 19.07.2005 00:25

пасиб... посмотрим

-MS- 20.07.2005 04:32

Вложений: 1
респекты maksim_surguy, разобрался :) чуток переработал...
кому интересно с моими корявыми пояснениями и чуток попроще(без комнат и имен из цифр :) ) смотрим атач
зы. версия 2.0 будет со списком пользователей и приватом :)

Viktor_UA 29.07.2005 18:06

можно вопрос?
а как ты на своей машине тестишь это? как ты порт открываешь? и как это применять на серверах, ведь там закрытые ж порты или я не прав?

50%LameRa 29.07.2005 21:52

Порты, которые слушает сервер ставяться в настройках сервера.
А теститься такое обычно telnet-oм.

Viktor_UA 29.07.2005 23:11

Как протестировать эти вышерасположенные исходники? у меня не получается!
я у себя запускаю апачи и потом хтмл с флєш чатом! он не может установить соединение! подскажите, почему?
И вообще, что неоходимо сделать?
Заранее благодарен!

-MS- 30.07.2005 01:06

на локалке все работает, на серваке не пробовал
у мя стоит пакет денвер
виктор, а пхп помимо апача у тя стоит? :)
сначаля пхп скрипт запускай, а потом флэшку

Viktor_UA 30.07.2005 16:00

Это безумие. Как последний чайник...не слушает меня комп.
загружаю Апачи, кидаю файлы в апачи, в папку fchat. Открываю браузер и пишу localhost/fchat/chat2.php. ПХП на тенлегу установлено. Браузер мне отвечает
Call to undefined function socket_create() in c:\program files\apache group\Apache\htdocs\fchat\chat2.php

Что не так?

Только что скачал денвер, поставил, закинул туда папку chat с chat2.php and chat.swf. Дальше запускаю, как ті говорил, пхп файл и он мне в ответ снова говорит

Call to undefined function socket_create() in c:\program files\apache group\Apache\htdocs\fchat\chat2.php

Что єто такое? Как с єтим боротся, плиз, подскажи!

50%LameRa 30.07.2005 21:25

это у тебя нет модуля сокетов для Php если у тя денвер качай с сайта.


Часовой пояс GMT +4, время: 13:19.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.