Привязка сокетов к зарезервированным портам

privyazka soketov k zarezervirovannym portam Сетевые сценарии

Если говорить о зарезервированных портах, то со стороны клиента нет ограничений на открытие соединения с такими портами, как это было продемонстрировано в предыдущем разделе, но для установки собственных серверных сценариев для этих портов необходимо иметь особые права доступа. На сервере, где находится мой сайт learningpython.com, например, порт 80 веб-сервера запрещен для использования простыми сценариями (если не входить в командную оболочку с использованием специальной учетной записи):

[…]$ python

>  >> from socket import *

>  >> sock = socket(AF_INET,SOCK_STREAM) # попробовать привязать порт 80

>  >> sock.bind((», 80)) # на общем компьютере learningpython.com

Traceback (most recent call last):

File "<stdin>", line 1, in

File "<string>", line 1, in bind socket.error: (13, ‘Permission denied’) (socket.error: (13, Недостаточно прав‘))

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

>что позволяет запустить сервер

>на компьютере localhost

подпись: c:\...\pp4e\internet\sockets> python
> >> from socket import *
> >> sock = socket(af_inet, sock_stream)
> >> sock.bind(('', 80))
>>>
подпись: > в windows можно привязать порт 80
> что позволяет запустить сервер
> на компьютере localhost


Подробнее установку веб-сервера мы будем рассматривать в главе 15. А в этой главе нам необходимо представить себе, как в реальности серверы сокетов обслуживают клиентов.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий