Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 2

TCP сервер и ошибка "Обычно разрешается только одно использование адреса сокета"

24.05.2015, 12:30. Показов 2454. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Волей случая, в общеобразовательных целях решил заняться написанием WEB сервиса для своей игрушки. Общаться хочу по TCP.
Поставил дэнвер, написал простой сервер из примера php.net, и столкнулся с первой проблемой - никак не запустить его, постоянно выкидывает ошибку:
unable to bind address [0]: Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)
Дело встало, моих скудных познаний катастрофически не хватает для того, чтобы понять в чём дело.
Подскажите, пожалуйста, в какую сторону копать)
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
error_reporting(E_ALL);
 
/* Позволяет скрипту ожидать соединения бесконечно. */
set_time_limit(0);
 
/* Включает скрытое очищение вывода так что мы получаем данные
 * как только они появляются. */
ob_implicit_flush();
 
$address = '127.0.0.1';//localhost - проверено
$port = 10000;//пробовал разные
 
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
    echo "Не удалось выполнить socket_create(): причина: " . socket_strerror(socket_last_error()) . "\n";
}
 
if (socket_bind($sock, $address, $port) === false) {
    echo "Не удалось выполнить socket_bind(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
}
 
if (socket_listen($sock, 5) === false) {
    echo "Не удалось выполнить socket_listen(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
}
 
do {
    if (($msgsock = socket_accept($sock)) === false) {
        echo "Не удалось выполнить socket_accept(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    /* Отправляем инструкции. */
    $msg = "\nДобро пожаловать на тестовый сервер PHP. \n" .
        "Чтобы отключиться, наберите 'выход'. Чтобы выключить сервер, наберите 'выключение'.\n";
    socket_write($msgsock, $msg, strlen($msg));
 
    do {
        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "Не удалось выполнить socket_read(): причина: " . socket_strerror(socket_last_error($msgsock)) . "\n";
            break 2;
        }
        if (!$buf = trim($buf)) {
            continue;
        }
        if ($buf == 'выход') {
            break;
        }
        if ($buf == 'выключение') {
            socket_close($msgsock);
            break 2;
        }
        $talkback = "PHP: Вы сказали '$buf'.\n";
        socket_write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";
    } while (true);
    socket_close($msgsock);
} while (true);
 
socket_close($sock);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.05.2015, 12:30
Ответы с готовыми решениями:

Обычно разрешается только одно использование адреса сокета
При запуске сервера на исполнение вылазит ошибка из названия темы. Кто поможет решить? public static void Main() { ...

TcpSocket: Обычно разрешается только одно использование адреса сокета
Понимаю, что тем с таким заголовком уже уйма, но ответа я так и не увидел. А точнее - что делать в моем случае. Итак, делаю сервер,...

В сервере ошибка Обычно разрешается одно использование адреса сокета
В сервере моего приложения при отправке файла возникает ошибка "Обычно разрешается одно использование адреса сокета (протокол/сетевой...

2
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
24.05.2015, 16:15
Pooher, Увидеть бы весь вывод скрипта\ошибки\ сам код скрипта. Чтобы наверняка знать в какой строке, в какой функции ошибка. Приведенная ошибка с Вашим кодом не стыкуется.
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 2
24.05.2015, 22:48  [ТС]
Ошибка в строке 17. Скрипт лежит в папке www. Запускаю в браузере localhost/script.php. Может не так надо? Просто я пока немного недопонимаю всей сути. Для меня это всё тёмный лес, в инете всё перерыл, инфы очень мало.

Добавлено через 5 часов 14 минут
#!/usr/local/bin/php -q
Warning: socket_bind() [function.socket-bind]: unable to bind address [0]: Обычно разрешается одно использование адреса сокета (протокол/сетевой адрес/порт). in Z:\home\localhost\www\U1.php on line 19
Не удалось выполнить socket_bind(): причина: Обычно разрешается одно использование адреса сокета (протокол/сетевой адрес/порт).
Warning: socket_listen() [function.socket-listen]: unable to listen on socket [0]: Получен недопустимый аргумент. in Z:\home\localhost\www\U1.php on line 23
Не удалось выполнить socket_listen(): причина: Получен недопустимый аргумент.
Warning: socket_accept() [function.socket-accept]: unable to accept incoming connection [0]: Получен недопустимый аргумент. in Z:\home\localhost\www\U1.php on line 28
Не удалось выполнить socket_accept(): причина: Получен недопустимый аргумент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2015, 22:48
Помогаю со студенческими работами здесь

Сокеты. Ошибка «Обычно разрешается одно использование адреса сокета»
Имеется отправка строк string AcceptLogin = Логин.Text + Пароль.Text; //AcceptLogin = AcceptLogin.GetHashCode().ToString();...

Ошибка в клиенте: Обычно разрешается одно использование адреса сокета
Здравствуйте, я изучаю сетевое программирование. Начал программирование сокетов. Вот сервер: using System; using System.Net; using...

Обычно разрешается только одно использование адреса сокета(протокол/сетевой адрес/порт)
Вот возникла проблема, существует многопоточный C# сервер работающий на UDP, слушающий 4 порта и вот с одним из этих портов возникла...

Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)
Пишу приложение TCP сервера по книге Уотсона. Приложение должно выводить список фотографий В книге указано поставить порт 8888...

Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)
При запуске вызывается ошибка на строчке с Bind. Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru