Существует мировой стандарт структуры протоколов связи - семиуровневая 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 |