С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
 Аватар для iLoveGoogle
18 / 18 / 2
Регистрация: 27.09.2011
Сообщений: 155

Как работает сокет соединение в PHP?

10.10.2014, 08:23. Показов 1919. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может ли кто-нибудь объяснить как работает сокет соединение в PHP ?
Дело в том что на сервер один порт к которому подключены пользователи. Общение может быть только между двумя пользователями - другие пользователи не могут видеть их разговор. Можно ли все это организовать на одном порту ?
Спасибо за участие.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.10.2014, 08:23
Ответы с готовыми решениями:

Как создать постоянное сокет-соединение?
Доброго дня. Необходимо создать постоянное соединение телефона с сервером посредством сокета. Для этого была создана служба, в которой...

Как сделать PHP сокет
Хочу сделать простейший php сокет, запустить его на бесплатном хостинге - и посылать принимать туду данные. Допустим я создал домен на...

Проверить закрыто ли соединение через сокет
Есть клиент-сервер на основе сокетов, сервер когда конектиться новый клиент получает от него одно сообщение и дальше принимает решение...

9
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
10.10.2014, 12:30
Цитата Сообщение от iLoveGoogle Посмотреть сообщение
Может ли кто-нибудь объяснить как работает сокет соединение в PHP ?
Так же как и в любом другом языке.
Цитата Сообщение от iLoveGoogle Посмотреть сообщение
Дело в том что на сервер один порт к которому подключены пользователи. Общение может быть только между двумя пользователями - другие пользователи не могут видеть их разговор. Можно ли все это организовать на одном порту ?
А как по-вашему работает та же аська (порт 5190), или например чаты (там обычно есть "приват") в интернете (порт 80 или 443)? - Они все на одном порту висят и как-то пользователи не видят лишнего.
1
0 / 0 / 0
Регистрация: 06.11.2014
Сообщений: 5
06.11.2014, 20:07
Не стал создавать новую тему, чтобы не мусорить, ибо вопрос вроде похожий.
Поясните немного, почему я не могу проверить открытость порта на сервере (по аналогии с командой telnet) следующей командой?
PHP
1
$fp = fsockopen ("92.39.x.x", "230");
(адрес естественно полный прописан)
Все время выдает false. Проверяю ей же какой нибудь прокси на порту 80, или любом другом - выдает true!
Такое чувство что именное соединение через сокеты на данном сервере закрыто! Может быть такое?

Командой telnet из командной строки Windows цепляется без проблем.
Если действительно может быть что сокеты как-то закрыты, как мне по другому проверить открытость порта?
Пробовал через cURL, но там с протоколом telnet полный бардак и мало инфы...
0
 Аватар для iLoveGoogle
18 / 18 / 2
Регистрация: 27.09.2011
Сообщений: 155
07.11.2014, 09:59  [ТС]
Из cmd - netstat -ano
0
0 / 0 / 0
Регистрация: 06.11.2014
Сообщений: 5
07.11.2014, 10:16
iLoveGoogle, это вы к чему? я же про php спрашиваю...
0
 Аватар для iLoveGoogle
18 / 18 / 2
Регистрация: 27.09.2011
Сообщений: 155
08.11.2014, 09:37  [ТС]
как мне по другому проверить открытость порта
Я подумал ты из винды проверить хочешь.
Думаю вначале проверь в phpinfo() чтоб allow_url_fopen был включен и в списке отключенных функций - disabled_functions fsockopen не находился
потом попытайся понять в чем ошибка
PHP
1
2
3
4
$fp = fsockopen ("92.39.x.x", "230",$errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
}
И вот еще из http://php.net/manual/ru/function.fsockopen.php функция проверки возможности подключения
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function chkServer($host, $port) 
{   
    $hostip = @gethostbyname($host); // resloves IP from Hostname returns hostname on failure 
    
    if ($hostip == $host) // if the IP is not resloved 
    { 
        echo "Server is down or does not exist"; 
    } 
    else 
    { 
        if (!$x = @fsockopen($hostip, $port, $errno, $errstr, 5)) // attempt to connect 
        { 
            echo "Server is down"; 
        } 
        else 
        { 
            echo "Server is up"; 
            if ($x) 
            { 
                @fclose($x); //close connection 
            } 
        }  
    } 
}
0
0 / 0 / 0
Регистрация: 06.11.2014
Сообщений: 5
10.11.2014, 10:16
Посмотрел вывод phpinfo() - allow_url_fopen в состоянии On, disabled_functions fsockopen - вообще отсутствует на странице вывода.
При попытке открытия по вашему первому коду такая ошибка:
Warning: fsockopen(): unable to connect to 92.39.х.х:230 (Connection timed out) in /home/srv52208/... /info.php on line 4 Connection timed out (110)
Второй код выдает "Server is down".

Вот что ответил пров: "Полностью отсутствует возможность использовать сокеты на шаред хостинге."
Это все? Тупик?
0
 Аватар для iLoveGoogle
18 / 18 / 2
Регистрация: 27.09.2011
Сообщений: 155
10.11.2014, 13:30  [ТС]
Ну в зависимости от того какую задачу тебе необходимо реализовать. Возможно будут альтерантивные решения для определенного рода задач.
0
0 / 0 / 0
Регистрация: 06.11.2014
Сообщений: 5
10.11.2014, 13:49
В смысле "какую задачу"?? )) Собственно о чем мы тут и разговариваем - всего лишь хочу мониторить доступность порта на сервере. Имея оплаченный шаред хостинг и не вкладывая дополнительных средств.
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
10.11.2014, 14:00
Цитата Сообщение от Mario62rus Посмотреть сообщение
"Полностью отсутствует возможность использовать сокеты на шаред хостинге."
Это все? Тупик?
тупик.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2014, 14:00
Помогаю со студенческими работами здесь

Слушающий сокет не может принять соединение
#include &lt;iostream&gt; #include &lt;winsock2.h&gt; void WSAmel(){ WSADATA w; if (WSAStartup(0x202,&amp;w)){ std::cout &lt;&lt; &quot;Error WSA...

Как грамотно защитить сокет-сервер на PHP паролем
Приложение командной строки PHP, обслуживающее сервер сокетов, сделано в соответствии со следующими рекомендациями: ...

Соединение данных при отправке через сокет
Доброго времени суток. Сейчас возникла непредвиденная проблема, сокет начал отправлять сообщения сгрупированно, то есть ...

Соединение через сокет и синхронность работы клиента и сервера
Доброго времени суток! Попытаюсь изложить свою проблему вкратце: Необходимо реализовать одновременный клик левой кнопкой мыши на 2-ух...

Как только происходит попытка создать сокет для UDP - сокет TCP сразу ломается (выдает 10093).
Добрый день. Пытаюсь сделать соединение, использующее два канала обмена данными - TCP для управления в режиме клмиента, и UDP - для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru