Программирование сетевых задач
В области компьютеризации понятие программирования сетевых задач или иначе называемого сетевого программирования (англ. network programming), довольно сильно схожего с понятиями программирование сокетов и клиент-серверное программирование, включает в себя написание компьютерных программ, взаимодействующих с другими программами посредством компьютерной сети. Программа или процесс, инициирующие установление связи, называются клиентским процессом, а программа, ожидающая инициации связи, называется серверным процессом. Клиентский и серверный процессы вместе образуют распределенную систему. Связь между клиентским и серверным процессами может быть или на основе соединений (как например, TCP-протокол, устанавливающий виртуальное соединение или сессию), или без соединений (на основе UDP-датаграмм).
Программа, которая может функционировать и как клиент и как сервер, основывается на одноранговой связи.
Сокеты обычно реализуются библиотекой интерфейса программирования приложений (API), как например, сокеты Беркли, впервые представленные в 1983 году. Большинство реализаций основаны на сокетах Беркли, например, Winsock, представленный в 1991 году. Существуют и другие реализации API сокетов, например, Интерфейс транспортного уровня (TLI) на основе STREAMS.
Ниже следуют примеры функций или методов, обычно реализуемые библиотекой API:
socket()
создает новый сокет определенного типа, идентифицируемый при помощи целого числа, после чего выделяет ему системные ресурсы.bind()
, как правило, используется на серверной стороне; ассоциирует сокет с адресной структурой сокетов, то есть определенным номером локального порта и IP-адресом.listen()
используется на стороне сервера; переводит TCP-сокет в режим прослушивания.connect()
используется на клиентской стороне; привязывает номер незанятого локального порта к сокету. В случае с TCP-сокетом, вызывает попытку установить новое TCP-соединение.accept()
используется на стороне сервера. Данная функция принимает полученную попытку создания нового TCP-соединения от удаленного клиента и создает новый сокет, ассоциированный с парой сокетных адресов этого соединения.send()
иrecv()
илиwrite()
иread()
илиrecvfrom()
иsendto()
используются для отправки и получения данных к/от удаленного сокета.close()
вызывает освобождение системных ресурсов, выделенных сокету. В случае TCP, соединение завершается.
См. также
Ссылки
- Руководство по сетевому программированию от Beej (англ.)
- Networking Basics - основы работы сетей с точки зрения Java (англ.)
Программирование | Это незавершённая статья о программировании. Вы можете помочь проекту, исправив и дополнив её. |
На эту статью не ссылаются другие статьи Википедии. Пожалуйста, воспользуйтесь подсказкой и установите ссылки в соответствии с принятыми рекомендациями.
|
en:Computer network programming
Ошибка: неверное или отсутствующее изображение |
В этой статье не проставлены тематические категории. Вы можете помочь проекту, найдя их или создав новые, а потом добавив их в статью.
|
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....