Подключение к зарезервированным портам

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

Важно также знать, что эти клиент и сервер участвуют в диалоге частного свойства и потому используют порт с номером 50007 — вне диапазона, зарезервированного для стандартных протоколов (0-1023). Однако ничто не мешает клиенту открыть сокет на одном из этих выделенных портов. Например, следующий программный код соединяется с программами, ожидающими запросов на соединение на стандартных портах электронной почты, FTP и веб-сервера HTTP на трех разных компьютерах:

C:\\PP4E\Internet\Sockets> python

>  >> from socket import *

>  >> sock = socket(AF_INET, SOCK_STREAM)

>  >> sock.connect((‘pop.secureserver.net’, 110)) # подключиться к POPсерверу

>  >> print(sock.recv(70))

b’+OK <14654.1272040794@p3pop01-09.prod.phx3.gdg>\r\n’

>  >> sock.close()

>  >> sock = socket(AF_INET, SOCK_STREAM)

>  >> sock.connect((‘learning-python.com’, 21)) # подключиться к FTPсерверу

>  >> print(sock.recv(70))

b’220—— Welcome to Pure-FTPd [privsep] [TLS] \r\n220-You’

>  >> sock.close()

>  >> sock = socket(AF_INET, SOCK_STREAM)

>  >> sock.connect((‘www.python.net‘, 80)) # подключиться к HTTP-серверу

>  >> sock.send(bGET /\r\n‘) # получить корневую страницу

7

>  >> sock.recv(70)

b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r\n "http://’

>  >> sock.recv(70)

b’www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r\n<html xmlns="http://www.’

Если уметь интерпретировать вывод, возвращаемый серверами этих портов, то можно непосредственно использовать такие сокеты для получения почты, передачи файлов, загрузки веб-страниц и запуска сценариев на сервере. К счастью, нет надобности беспокоиться о деталях происходящего — модули Python poplib, ftplib, http.client и urllib. request предоставляют интерфейсы более высокого уровня для связи с серверами через эти порты. Существуют также другие модули протоколов Python, которые осуществляют то же самое для других стандартных портов (например, NNTP, Telnet и так далее). С некоторыми из этих клиентских модулей протоколов мы познакомимся в следующей главе.

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

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

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