» 2009 » Ноябрь Программирование сетей. с++ и с #. . Блог программистов


Блог программистов




20091 Ноя

Низкоуровневое сетевое программирование. Пишем клиент/серверное приложение на сокетах Беркли

Вступление.
Итак. Свою новую статью я бы хотял посвятить низкоуровневому сетевому программированию. Постараюсь наиболее полно и одновременно сжато изложить основные принципы сетевого программирования, а так же будет рассмотрен пример построение рабочего многопоточного сервера и клиента. Все примеры разрабатывались и комплировались на Unix-подобной операционной системе и все ниже сказанное будет справедливо для любой Unix. Но, т.к. описываемое является стандартом, — данным материалом смогут воспользоваться и программисты, работающие в среде Windows (я на рассматривал конкретно сетевое программирование в этой ОС, т.к. не использую её), изменения коснуться, разве что, заголовочных файлов.
Как было сказано выше — будет рассмотрено низкоуровневое сетевое программирование. Справедливости ради, следует сказать, что оно, на самом деле, не такое уж низкоуровневое, т.к. существуют гораздо более низкие уровни, но все это, как правило, прерогатива ядра ОС/драйверов/железа. Для облегчения работы с сетью, операционной системой предоставляются особые объекты — сокеты (в некоторых книгах их называют «гнезда»), представляющие собой разновидность программных интерфейсов. Они позволяют представить сетевой интерфейс как простое устройство ввода/вывода и работать с ним, почти как с обычным файлом (что истинно, ибо в Unix все устройства представлены как файлы). Для работы с сокетами используются API, разработанные в Калифорнийском университете в городе Беркли (для BSD Unix) в 1983 году. Эти API являются сегодня стандартном де-факто и поддерживаются практически всеми современными операционными системами. Данный программный интерфейс, так же называют сокетами Беркли. В основе сокетов лежат протоколы TCP/IP и UDP. Рассмотрение особенностей каждого из них выходит за пределы данной статьи. Скажу только самое главное: TCP — это протокол, обеспечивающий надежное соединение и гарантированную доставку пакетов. UDP — протокол без установления соединения и без каких либо гарантий доставки пакета. IP — протокол сетевого уровня, служит транспортом для протоколов TCP и UDP.
(more…)


Облако меток

AdSense клиент компонент api ClientSocket библиотеки dll ServerSocket приложение INTERFACE шифровка байт char работа пароль учеба programmer процессор Application HANDLE Cursor C++ AssignFile хуки win api Project Internet google FASM memo исходники html функция язык System поиск GetLastError алгоритм программист programmersclub сервер форум exe сайт файл проект Assembler шифрование windows delphi