Что такое сокет
|
Мама приходит из аптеки и говорит дочке, которая сидит в чате:
- Я марганцовку купила.
- Рулез! - отвечает дочка не отрываясь от компа.
Мама через 5 минут раздумия:
- Нет не рулез, а марганцовку!
|
Существует мировой стандарт структуры протоколов связи -
семиуровневая OSI (Open Systems Interface - интерфейс
открытых систем). Hа каждом из уровней этой структуры
решается свой объем задач своими методами. Сокеты
находятся на так назывемом транспортном уровне - ниже
находится сетевой протокол IP, выше - специализированные
протоколы сеансового уровня, ориентированные на решение
конкретных задач - это всем известные FTP, SMTP, etc.
Если смотреть по сути, сокет - это модель одного конца
сетевого соединения, со всеми присущими ему свойствами,
и, естественно - возможностью получать и передавать
данные. По содержанию - это прикладной программный
интерфейс, входящий в состав многих ОС. В семействе
Windows - начиная с версии 3.11, и носит название WinSock.
Прототипы функций WinSock API находятся в файле
winsock.pas. В Delphi есть полноценная инкапсуляция
клиентского и серверного сокетов, представленная
компонентами TClientSocket и TServerSocket, находящимися
на закладке Internet.
Сокеты не обязательно базируются на протоколе TCP/IP, они могут также
базироваться на IPX/SPX, etc.
Также Вам следует ознакомиться со списком зарезервированных номеров портов.
Механизм взаимодействия сокетов таков. С одной из двух
сторон запускается серверный сокет, который сразу после
запуска находится в режиме прослушивания (listening), точнее -
ожидания запросов от клиентов. После получения запроса от
клиента устанавливается связь, и создается новый экземпляр серверного сокета.
Так как работа с сокетами, это, по сути - операции ввода/вывода,
которые бывают синхронными или асинхронными, то и тип
работы сокета обладает бывает синхронным или асинхронным.
Компоненты TClientSock и TServerSock поддерживают оба режима работы.
Дополнение от Анатолия Подгорецкого:
Когда говорят СОКЕТ то часто не представляют, что это такое.
Можно говорить об моделях, об реализациях и так далее. о есть
одно простое толкование, применимое для протокола IP. Как
известно для взаимодействия между машинами по протоколу
IP используются адреса и порты.
Первое на текущий момент представляют из себя 32-x
битный адрес, наиболее часто его представляют в символьной
форме mmm.nnn.ppp.qqq (адрес разбитый на четыре октета
по одному байту в октете и разделеный точками) .
Второе - это номер порта в диапазоне от нуля до 65535
Так вот эта пара и есть сокет (гнездо в в котором расположены
адрес и порт).
В процессе обмена как правило используются два сокета -
сокет отправителя и сокет получателя.
апример при обращении к моему серверу на HTTP порт
сокет будет выглядеть так: 194.106.118.30:80, а ответ будет поступать на
mmm.nnn.ppp.qqq:xxx
|