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

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

10.10.2014, 08:23. Показов 1940. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru