Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (4) « Первая ... 2 3 [4]  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Сокеты
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев
Карма: 13




killer8080 просто кто то мне шепнул на ушко, что и так можно делать dry.gif Тогда сейчас попробуем запустить по другому
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев
Карма: 13




А вот и текст ошибки подъехал:
Цитата
socket_bind(): unable to bind address [10048]: Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт).
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев
Карма: 13




Что значит эта ошибка? Данный адрес у меня больше нигде не используется
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Ты его из браузера запускаешь? То есть рефрешнул страницу – сервер запустился опять?
Запускай вручную из консоли.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев
Карма: 13




Guest, запускаю я его вот таким вот скриптом:
<?php 

header('Content-Type: text/html; charset=utf-8');

if(exec('D:\Server\modules\php\PHP-7-x64\php.exe -q D:\Server\domains\localhost\simpleworking.php', $arr))
{
echo '<span style=\'color: green;\'>Socket launched!</span>';
}
else {
echo '<span style=\'color: red;\'>Socket is not launched!<br><pre>'.print_r($arr, true).'</pre></span>';
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 26 дней
Карма: 15




Дружище, ты запусти демон по человечески из консоли. Я не знаю точно как там на винде, но должно быть как-то так

Цитата

D:\Server\modules\php\PHP-7-x64\php.exe -f "D:\Server\domains\localhost\simpleworking.php"


Цитата
Guest, запускаю я его вот таким вот скриптом

Теперь подумай. Ты выполнил этот скрипт через браузер, у тебя запустился процесс, затем ты обновляешь эту страницу и у тебя опять происходит попытка запустить процесс, но он уже запущен и занимает порт, тогда при втором и последующих запусках твоего этого самопала тебе будут сыпать ошибки о занятом порте.

Более того, exec в качестве результата возвращает последнюю строку вывода исполняемой команды. То есть, если твой демон ничего не пишет в поток вывода, то exec вернет пустую строку, которая в php при преобразовании в boolean рассматривается как FALSE. Поэтому мы точно не знаем, но вполне вероятно, что твой этот самопал может всегда выполнять код из ветки false, даже если на самом деле демон был запущен.

Вообщем ты костылишь. Убирай это всё и запускай напрямую из консоли. И еще, порты 0-1023 являются системными, их нельзя занимать, поэтому порт должен быть выше чем 1023.

Когда ты запустишь демон из консоли, примерно как я выше написал, он должен у тебя перехватить управление консолью, то есть ты не сможешь больше выполнять другие команды на этой консоли, пока не убьешь демон через Ctrl+C или пока не переведешь его выполнение в фон (background) и т.д. Это может быть сигналом для тебя, что что-то там у тебя действительно запустилось. А лучше внутри демона пиши что-нибудь в поток вывода, тогда при запуске этот вывод отобразится на консоли.

Какие-то моменты могут немного отличаться под виндой, я под ней не работаю, поэтому учитывай это, когда читаешь.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев
Карма: 13




Santehnick косяки свои я подправил. Стартую демон через консоль. Сам сервер вроде работает более менее. Теперь с клиентом проблемы пошли. Сервер я запустил на прослушку вот такого вот сокета: 127.0.0.1:1242. Теперь при подключении клиента к этому серверу выдает вот такую вот бяку:
Цитата
WebSocket connection to 'ws://127.0.0.1:1242/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
socket.js:27 WebSocket connection to 'ws://127.0.0.1:1242/' failed: Error during WebSocket handshake: Invalid status line

Почему не устанавливается соединение? Сервер вроде работает нормально. Логи все выдает положительные
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 26 дней
Карма: 15




В спецификации есть handshake. На самом деле tcp соединение у тебя устанавливается. Но так как твой сервер не реализует рукопожатие (handshake) из этой спецификации, то websocket соединение естественно фейлится и браузер со своей стороны закрывает tcp соединение.

Нужно читать изначально спецификацию протокола и только потом писать сервер, который реализует этот протокол. Поэтому я тебе и говорил про Ratchet. Он как раз за тебя реализует этот протокол, а ты просто уже пишешь свое приложение. Ну примерно также, как ты брал nginx/apache чтобы запустить свой сайт по http протоколу. Ты же не писал свою реализацию http протокола, верно? За тебя это уже сделали, ты просто брал готовый веб сервер и делал свой сайт. Здесь такая же история, ты берешь Ratchet и пишешь свой сайт или изучаешь rfc6455 и пишешь самостоятельно свой сервер. Понимаешь?
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (4) « Первая ... 2 3 [4]  Ответ в темуСоздание новой темыСоздание опроса